17.2.1 目錄管理
.Net框架結構在名字空間System.IO中為我們提供了Directory類來進行目錄管理。利用它,我們可以完成對目錄及其子目錄進行創建、移動、浏覽等操作,甚至還可以定義隱藏目錄和只讀目錄。
Directory的構造函數形式如下:
public Directory(string path);
其中的參數path表示目錄所在的路徑。
Directory的主要屬性有:
●Attributes:0x01表示只讀,0x02表示隱藏。
●Name:當前路徑名。
●Parent:上一級父目錄名。
●Root:所在根目錄名。
●Creation Time:目錄創建時間。
●LastAccessTime:上一次訪問目錄的時間。
●LastWriteTime:上一次修改目錄的時間。
我們常用到的Directory類的一些成員方法有:
●CreateDirectory(string path):創建子目錄。
●CreateDirectorIEs(string path):創建多級子目錄。
●CreateFile(string filename):在當前目錄下創建一個新文件。
●Delete():刪除目錄。
下面的例子中,我們利用Directory的CreateDirectory和CreateDirectorIEs方法創建一級和二級目錄。
程序清單17-1:
using System; using System.IO; class DirectoryTest { public static void Main() { Directory d=new Directory("c:\\C#"); Directory d1; Directory d2; try{ d1=d.CreateSubdirectory("file1"); } catch(IOException e) { Console.WriteLine("directory file1 failed because:{0}",e); return; } try{ d2=d.CreateSubdirectorIEs("file1\\file2"); //等於d2=d1.CreateSubDirectory("file2"); } catch(IOException e) { Console.WriteLine("directory file2 failed because:{0}",e); return; } Console.WriteLine("Create directory successfully!"); } }
上面例子中的異常IOException表示准備創建的目錄名已經存在。System.IO中提供了各種輸入輸出的異常,便於我們了解任務失敗的原因所在,或者是給程序的用戶提示信息。
同樣我們可以進行目錄刪除操作。
程序清單17-2:
using System; using System.IO; class DirectoryTest { public static void Main() { Directory d=new Directory("c:\\C#file1"); Directory[] subdir; try{ subdir=d.GetDirectorIEs(); } catch(DirectoryNotFoundException e) { Console.WriteLine("Can not find such a directory because:{0}",e); return; } foreach(Directory dir in subdir){ dir.Delete(); } d.Delete(); Console.WriteLine("Delete successfully!"); } }