C# 文件操作詳解(三)---------Directory類

  前面兩篇介紹了File類和FileInfo類,對於文件的操作基本夠用,但是後面還會補充一下FileStream相關的操作,例如StreamReader和StreamWriter的內容。本文主要介紹Directory類的使用,讓我們一起看一下Directory類爲我們提供了哪些操作。

  Directory類  提供了大量的操作目錄的靜態方法,下面我們一一學習一下。

  1、創建目錄

// 摘要:按 path 的指定創建所有目錄和子目錄。
public static DirectoryInfo CreateDirectory(string path);
// 摘要:創建指定路徑中的所有目錄,並應用指定的 Windows 安全性。
public static DirectoryInfo CreateDirectory(string path, DirectorySecurity directorySecurity);

  這裏要說明一下,我們使用CreateDirectory方法時,不是隻能創建一級目錄,而是可以創建一個層級目錄,只要你指定的目錄路徑無此目錄,就可以創建。

  2、刪除目錄

// 摘要:從指定路徑刪除空目錄。
public static void Delete(string path);
// 摘要:刪除指定的目錄並(如果指示)刪除該目錄中的任何子目錄。
public static void Delete(string path, bool recursive);

  我們看方法的註釋可以知道,第一個方法只能刪除一個空的目錄,若刪除非空目錄會提示錯誤,如圖:

第二個方法則是可以通過指定第二個參數來控制是否遞歸刪除子目錄,因此,建議在使用時先使用第一個方法,當捕獲到異常時,再提示使用第二個方法遞歸刪除(此處只是個人建議,並非固定模式)。

  3、獲取子目錄、文件

//獲取目錄集合
// 摘要:返回指定路徑中的目錄名稱的可枚舉集合。
public static IEnumerable<string> EnumerateDirectories(string path);
// 摘要:返回指定路徑中與搜索模式匹配的目錄名稱的可枚舉集合。
public static IEnumerable<string> EnumerateDirectories(string path, string searchPattern);
// 摘要:返回指定路徑中與搜索模式匹配的目錄名稱的可枚舉集合,還可以搜索子目錄。
public static IEnumerable<string> EnumerateDirectories(string path, string searchPattern, SearchOption searchOption);
// 摘要:返回指定路徑中的文件名的可枚舉集合。
public static IEnumerable<string> EnumerateFiles(string path);
// 摘要:返回指定路徑中與搜索模式匹配的文件名稱的可枚舉集合。
public static IEnumerable<string> EnumerateFiles(string path, string searchPattern);
// 摘要:返回指定路徑中與搜索模式匹配的文件名稱的可枚舉集合,還可以搜索子目錄。
public static IEnumerable<string> EnumerateFiles(string path, string searchPattern, SearchOption searchOption);
// 摘要:返回指定路徑中的文件系統項的可枚舉集合。
public static IEnumerable<string> EnumerateFileSystemEntries(string path);
// 摘要:返回指定路徑中與搜索模式匹配的文件系統項的可枚舉集合。
public static IEnumerable<string> EnumerateFileSystemEntries(string path, string searchPattern);
// 摘要:返回指定路徑中與搜索模式匹配的文件名稱和目錄名稱的可枚舉集合,還可以搜索子目錄。
public static IEnumerable<string> EnumerateFileSystemEntries(string path, string searchPattern, SearchOption searchOption);
        

//獲取目錄數組
// 摘要:獲取指定目錄中子目錄的名稱。
public static string[] GetDirectories(string path);
// 摘要:從當前目錄獲取與指定搜索模式匹配的目錄的數組。
public static string[] GetDirectories(string path, string searchPattern);
// 摘要:獲取當前目錄中與指定搜索模式匹配並使用某個值確定是否在子目錄中搜索的目錄的數組。
public static string[] GetDirectories(string path, string searchPattern, SearchOption searchOption);


//獲取文件
// 摘要:返回指定目錄中的文件的名稱。
public static string[] GetFiles(string path);
// 摘要: 返回指定目錄中與指定搜索模式匹配的文件的名稱。
public static string[] GetFiles(string path, string searchPattern);
// 摘要: 返回指定目錄中文件的名稱,該目錄與指定搜索模式匹配並使用某個值確定是否在子目錄中搜索。
public static string[] GetFiles(string path, string searchPattern, SearchOption searchOption);
// 摘要:返回指定目錄中所有文件和子目錄的名稱。
public static string[] GetFileSystemEntries(string path);
// 摘要: 返回與指定搜索條件匹配的文件系統項的數組。
public static string[] GetFileSystemEntries(string path, string searchPattern);
// 摘要: 獲取指定路徑中與搜索模式匹配的所有文件名稱和目錄名稱的數組,還可以搜索子目錄。
public static string[] GetFileSystemEntries(string path, string searchPattern, SearchOption searchOption);

  通過上述的方法我們可以完成目錄的遍歷功能,所以大家在練習本節的方法時,希望是以完成一個目錄遍歷的小例子爲最終目的,我會在下篇中上傳我做的一個目錄遍歷的程序給大家做參考,希望能給大家提供幫助。

  4、獲取和設置目錄屬性

// 摘要:獲取一個 System.Security.AccessControl.DirectorySecurity 對象,該對象封裝指定目錄的訪問控制列表(ACL) 項。
public static DirectorySecurity GetAccessControl(string path);
// 摘要:獲取一個 System.Security.AccessControl.DirectorySecurity 對象,它封裝指定目錄的指定類型的訪問控制列表(ACL) 項。
public static DirectorySecurity GetAccessControl(string path, AccessControlSections includeSections);
// 摘要:獲取目錄的創建日期和時間。
public static DateTime GetCreationTime(string path);
// 摘要:獲取目錄創建的日期和時間,其格式爲協調世界時 (UTC)。
public static DateTime GetCreationTimeUtc(string path);
// 摘要:返回上次訪問指定文件或目錄的日期和時間。
public static DateTime GetLastAccessTime(string path);
// 摘要:返回上次訪問指定文件或目錄的日期和時間,其格式爲協調世界時 (UTC)。
public static DateTime GetLastAccessTimeUtc(string path);
// 摘要: 返回上次寫入指定文件或目錄的日期和時間。
public static DateTime GetLastWriteTime(string path);
// 摘要: 返回上次寫入指定文件或目錄的日期和時間,其格式爲協調世界時 (UTC)。
public static DateTime GetLastWriteTimeUtc(string path);



// 摘要:將 System.Security.AccessControl.DirectorySecurity 對象描述的訪問控制列表 (ACL) 項應用於指定的目錄。
public static void SetAccessControl(string path, DirectorySecurity directorySecurity);
// 摘要:爲指定的文件或目錄設置創建日期和時間。
public static void SetCreationTime(string path, DateTime creationTime);
// 摘要:設置指定文件或目錄的創建日期和時間,其格式爲協調世界時 (UTC)。
public static void SetCreationTimeUtc(string path, DateTime creationTimeUtc);
// 摘要:設置上次訪問指定文件或目錄的日期和時間。
public static void SetLastAccessTime(string path, DateTime lastAccessTime);
// 摘要:設置上次訪問指定文件或目錄的日期和時間,其格式爲協調世界時 (UTC)。
public static void SetLastAccessTimeUtc(string path, DateTime lastAccessTimeUtc);
// 摘要:設置上次寫入目錄的日期和時間。
public static void SetLastWriteTime(string path, DateTime lastWriteTime);
// 摘要:設置上次寫入某個目錄的日期和時間,其格式爲協調世界時 (UTC)。
public static void SetLastWriteTimeUtc(string path, DateTime lastWriteTimeUtc);

  5、移動、判斷是否存在

// 摘要:將文件或目錄及其內容移到新位置。
public static void Move(string sourceDirName, string destDirName);
// 摘要: 確定給定路徑是否引用磁盤上的現有目錄。
public static bool Exists(string path);

  6、獲取卷信息、根信息、當前工作目錄

// 摘要:獲取應用程序的當前工作目錄。
public static string GetCurrentDirectory();
// 摘要:返回指定路徑的卷信息、根信息或兩者同時返回。
public static string GetDirectoryRoot(string path);
// 摘要:檢索此計算機上格式爲“<盤符>:\”的邏輯驅動器的名稱。
public static string[] GetLogicalDrives();
// 摘要:檢索指定路徑的父目錄,包括絕對路徑和相對路徑。
public static DirectoryInfo GetParent(string path);
// 摘要: 將應用程序的當前工作目錄設置爲指定的目錄。
public static void SetCurrentDirectory(string path);

  

  總結

  以上即爲Directory類中爲我們提供的可使用方法,並且和File類一樣,這些方法都是靜態的,通過結合這些方法的使用我們可以完成對目錄的所有操作,本文就沒有提供相關的範例,在下篇中會提供一個使用以上方法完成的一個簡單的目錄檢索工具。

 

 

------------------------------------------------------------------------

聯繫我:[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章