前面有幾位前輩給我之前的幾篇文章提出了寶貴意見,建議我自己做例子來說,因此,這篇我就以自己的小測試來說明DirectoryInfo的使用方法。但是,中間還是會有部分文檔的內容,請各位前輩見諒。下面就先來看下如何使用DirectoryInfo類來操作我們的目錄。
1、創建目錄
// 摘要:創建目錄。 public void Create(); //摘要:使用 System.Security.AccessControl.DirectorySecurity 對象創建目錄。 public void Create(DirectorySecurity directorySecurity);
微軟為我們提供了兩個創建目錄的方法(當然這里我指的是純創建方法,不包括移動、復制等操作帶來的目錄創建),下面我使用第一個方法進行了測試。
if (Directory.Exists(@"E:\DirectoryInfoDemo")) { Console.WriteLine("目錄已經存在!"); } else { DirectoryInfo directoryInfo = new DirectoryInfo(@"E:\DirectoryInfoDemo"); directoryInfo.Create(); } Console.ReadKey();
結果如圖:
執行前: 執行后:
你也可以使用Create方法進行級聯創建。
2、刪除目錄
// 摘要:如果此 System.IO.DirectoryInfo 為空,則刪除它。 public override void Delete(); // 摘要:刪除 System.IO.DirectoryInfo 的此實例,指定是否要刪除子目錄和文件。 public void Delete(bool recursive);
刪除目錄的功能微軟仍然給我們提供了兩個方法,第一個很簡單理解,第二個多了一個參數recursive,從英文的字面意思我們也知道,這個Delete方法是同時刪除目錄下的子目錄和文件。下面我們用程序來實現以下,
if (!Directory.Exists(@"E:\DirectoryInfoDemo"))
{ Console.WriteLine("目錄不存在!"); } else { DirectoryInfo directoryInfo = new DirectoryInfo(@"E:\DirectoryInfoDemo"); directoryInfo.Delete(true); } Console.ReadKey();
結果如圖:
執行前: 執行后:
如果我們是多級目錄的話,那就需要使用遞歸的方法來進行刪除了,不然你就會得到這個的提示
3、獲取子目錄和文件
對於這個操作,微軟為我們提供了眾多方法,你可以根據自己的需要來進行選擇,
// 摘要:返回當前目錄中的目錄信息的可枚舉集合。 // 摘要:返回與指定的搜索模式匹配的目錄信息的可枚舉集合。 public IEnumerable<DirectoryInfo> EnumerateDirectories(string searchPattern); // 摘要:返回與指定的搜索模式和搜索子目錄選項匹配的目錄信息的可枚舉集合。 public IEnumerable<DirectoryInfo> EnumerateDirectories(string searchPattern, SearchOption searchOption); // 摘要:返回當前目錄中的文件信息的可枚舉集合。 public IEnumerable<FileInfo> EnumerateFiles(); // 摘要:返回與搜索模式匹配的文件信息的可枚舉集合。 public IEnumerable<FileInfo> EnumerateFiles(string searchPattern); // 摘要:返回與指定的搜索模式和搜索子目錄選項匹配的文件信息的可枚舉集合。 public IEnumerable<FileInfo> EnumerateFiles(string searchPattern, SearchOption searchOption); // 摘要: 返回當前目錄中的文件系統信息的可枚舉集合。 public IEnumerable<FileSystemInfo> EnumerateFileSystemInfos(); // 摘要:返回與指定的搜索模式匹配的文件系統信息的可枚舉集合。 public IEnumerable<FileSystemInfo> EnumerateFileSystemInfos(string searchPattern); // 摘要: 返回與指定的搜索模式和搜索子目錄選項匹配的文件系統信息的可枚舉集合。 public IEnumerable<FileSystemInfo> EnumerateFileSystemInfos(string searchPattern, SearchOption searchOption); // 摘要:獲取 System.Security.AccessControl.DirectorySecurity 對象,該對象封裝當前 System.IO.DirectoryInfo public DirectorySecurity GetAccessControl(); // 摘要:獲取 System.Security.AccessControl.DirectorySecurity 對象,該對象封裝當前 System.IO.DirectoryInfo對象所描述的目錄的指定類型的訪問控制列表 (ACL) 項。 public DirectorySecurity GetAccessControl(AccessControlSections includeSections); // 摘要:返回當前目錄的子目錄。 public DirectoryInfo[] GetDirectories(); // 摘要:返回當前 System.IO.DirectoryInfo 中、與給定搜索條件匹配的目錄的數組。 public DirectoryInfo[] GetDirectories(string searchPattern); // 摘要:返回當前 System.IO.DirectoryInfo 中與給定的搜索條件匹配並使用某個值確定是否在子目錄中搜索的目錄的數組。 public DirectoryInfo[] GetDirectories(string searchPattern, SearchOption searchOption); // 摘要:返回當前目錄的文件列表。 public FileInfo[] GetFiles(); // 摘要:返回當前目錄中與給定的搜索模式匹配的文件列表。 public FileInfo[] GetFiles(string searchPattern); // 摘要:返回與給定的搜索模式匹配並且使用某個值確定是否在子目錄中進行搜索的當前目錄的文件列表。 public FileInfo[] GetFiles(string searchPattern, SearchOption searchOption); // 摘要:返回表示某個目錄中所有文件和子目錄的強類型 System.IO.FileSystemInfo 項的數組。 public FileSystemInfo[] GetFileSystemInfos(); // 摘要:檢索表示與指定的搜索條件匹配的文件和子目錄的強類型System.IO.FileSystemInfo 對象的數組。 與搜索條件匹配的強類型 FileSystemInfo 對象的數組。 public FileSystemInfo[] GetFileSystemInfos(string searchPattern); // 摘要:檢索表示與指定的搜索條件匹配的文件和子目錄的 System.IO.FileSystemInfo 對象的數組。 public FileSystemInfo[] GetFileSystemInfos(string searchPattern, SearchOption searchOption);
這么多方法我就不一一舉例了,只挑選其中一兩個來測試一下,如果大家有需要,就對其他方法進行測試吧。
if (!Directory.Exists(@"E:\DirectoryInfoDemo")) { Console.WriteLine("目錄不存在!"); } else { DirectoryInfo directoryInfo = new DirectoryInfo(@"E:\DirectoryInfoDemo"); var directroies = directoryInfo.GetDirectories(); foreach (var directroy in directroies) { Console.WriteLine(directroy.Name); } } Console.ReadKey();
結果如圖:
執行前: 執行后:
除去以上的操作,微軟還給我們提供了移動操作、查看和設置目錄的訪問權限,本文就不舉例說明了。
------------------------------------------------------------------------
聯系我:277241073@qq.com