1. 程式人生 > >C# Directory類的操作

C# Directory類的操作

所有 stat director pub 文件 book 訪問 rect pat

Directory類位於System.IO 命名空間。Directory類提供了在目錄和子目錄中進行創建移動和列舉操作的靜態方法。此外,你還可以訪問和操作各種各樣的目錄屬性,例如創建或最後一次修改時間以及Windows訪問控制列表等。

System.IO.Directory類和System.DirectoryInfo類

主要提供關於目錄的各種操作,使用時需要引用System.IO命名空間。下面通過程序實例來介紹其主要屬性和方法。

方法/步驟

  1. 1

    目錄創建方法:Directory.CreateDirectory

    該方法聲明如下:

    public static DirectoryInfo CreateDirectory(string path);

    下面的代碼演示在c:\tempuploads文件夾下創建名為NewDirectory的目錄。

    private void MakeDirectory()

    {

    Directory.CreateDirectory(@"c:\tempuploads\NewDirectoty");

    }

  2. 2

    目錄屬性設置方法:DirectoryInfo.Atttributes

    下面的代碼設置c:\tempuploads\NewDirectory目錄為只讀、隱藏。與文件屬性相同,目錄屬性也是使用FileAttributes來進行設置的。

    private void SetDirectory()

    {

    DirectoryInfo NewDirInfo = new DirectoryInfo(@"c:\tempuploads\NewDirectoty");

    NewDirInfo.Atttributes = FileAttributes.ReadOnly|FileAttributes.Hidden;

    }

  3. 3

    目錄刪除方法:Directory.Delete

    該方法聲明如下:

    public static void Delete(string path,bool recursive);

    下面的代碼可以將c:\tempuploads\BackUp目錄刪除。Delete方法的第二個參數為bool類型,它可以決定是否刪除非空目錄。如果該參數值為true,將刪除整個目錄,即使該目錄下有文件或子目錄;若為false,則僅當目錄為空時才可刪除。

    private void DeleteDirectory()

    {

    Directory.Delete(@"c:\tempuploads\BackUp",true);

    }

  4. 4

    目錄移動方法:Directory.Move

    該方法聲明如下:

    public static void Move(string sourceDirName,string destDirName);

    下面的代碼將目錄c:\tempuploads\NewDirectory移動到c:\tempuploads\BackUp。

    private void MoveDirectory()

    {

    File.Move(@"c:\tempuploads\NewDirectory",@"c:\tempuploads\BackUp");

    }

  5. 5

    獲取當前目錄下的所有子目錄方法:Directory.GetDirectories

    該方法聲明如下:

    public static string[] GetDirectories(string path);

    下面的代碼讀出c:\tempuploads\目錄下的所有子目錄,並將其存儲到字符串數組中。

    private void GetDirectory()

    {

    string [] Directorys;

    Directorys = Directory. GetDirectories (@"c:\tempuploads");

    }

  6. 6

    獲取當前目錄下的所有文件方法:Directory.GetFiles

    該方法聲明如下:

    public static string[] GetFiles(string path;);

    下面的代碼讀出c:\tempuploads\目錄下的所有文件,並將其存儲到字符串數組中。

    private void GetFile()

    {

    string [] Files;

    Files = Directory. GetFiles (@"c:\tempuploads");

    }

  7. 7

    判斷目錄是否存在方法:Directory.Exist

    該方法聲明如下:

    public static bool Exists

    (

    string path;

    );

    下面的代碼判斷是否存在c:\tempuploads\NewDirectory目錄。若存在,先獲取該目錄下的子目錄和文件,然後其移動,最後將移動後的目錄刪除。若不存在,則先創建該目錄,然後將目錄屬性設為只讀、隱藏

    if(File.Exists(@"c:\tempuploads\NewDirectory")) //判斷目錄是否存在

    {

    GetDirectory(); //獲取子目錄

    GetFile(); //獲取文件

    MoveDirectory(); //移動目錄

    DeleteDirectory(); //刪除目錄

    }

    else

    {

    MakeDirectory(); //生成目錄

    SetDirectory(); //設置目錄屬性

    }

    註意:

    路徑有3種方式,當前目錄下的相對路徑、當前工作盤的相對路徑、絕對路徑。以C:\Tmp\Book為例(假定當前工作目錄為C:\Tmp)。“Book”,“\Tmp\Book”,“C:\Tmp\Book”都表示C:\Tmp\Book。

    另外,在C#中 “\”是特殊字符,要表示它的話需要使用“\\”。由於這種寫法不方便,[email protected]@即可直接使用“\”。所以上面的路徑在C#中應該表示為“Book”,@“\Tmp\Book”,@“C:\Tmp\Book”。

C# Directory類的操作