日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c# 找出目录下的所有子目录_C# 基础知识系列- 14 IO篇 文件的操作(2)

發布時間:2023/12/2 C# 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# 找出目录下的所有子目录_C# 基础知识系列- 14 IO篇 文件的操作(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前接上一篇內容。

如果是第一次捧場的小伙伴,為了您閱讀的連貫性,煩請掃一眼《C# 基礎知識系列- 14 IO篇 文件的操作(1)》。本篇是IO之文件操作的第二篇,介紹一下目錄和路徑的相關類。下一篇介紹如何通過流來操作文件。

1.2 Directory和DirectoryInfo

1.2.1 Directory

d. 返回目錄下的所有子目錄:

public static string[] GetDirectories (string path);public static string[] GetDirectories (string path, string searchPattern);public static string[] GetDirectories (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);public static string[] GetDirectories (string path, string searchPattern, System.IO.SearchOption searchOption);

除了上文提到的 GetDirectories 方法可以直接返回目錄下所有子目錄以外,還有一組方法也可以枚舉出當前目錄下的子目錄:

public static System.Collections.Generic.IEnumerable EnumerateDirectories (string path);

枚舉 path 目錄下的所有子目錄。

public static System.Collections.Generic.IEnumerable EnumerateDirectories (string path, string searchPattern);

searchPattern,搜索名稱字符串,可以包含有效文本路徑和通配符(* 和 ?)的組合,但不支持正則表達式。

public static System.Collections.Generic.IEnumerable EnumerateDirectories (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);public static System.Collections.Generic.IEnumerable EnumerateDirectories (string path, string searchPattern, System.IO.SearchOption searchOption);

這兩個方法放在一起講,這兩個是對上一個方法的增強和補充。其中 EnumerationOptions 是類,可以配置查詢的條件;SearchOption 是個枚舉,選擇只查詢當前目錄的子目錄名稱還是繼續深入查詢子孫目錄。

e.查看目錄下的所有文件-補充

與子目錄查詢相同,Directory也支持這么幾組查詢方法:

public static string[] GetFiles (string path);public static string[] GetFiles (string path, string searchPattern);public static string[] GetFiles (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);public static string[] GetFiles (string path, string searchPattern, System.IO.SearchOption searchOption);

從參數上看,可以看出來這是返回子目錄下的文件列表。其中使用 searchPattern查詢名稱,enumerationOptions 作為查詢條件,searchOption 作為查詢的深度。

同樣,查詢文件也可以使用枚舉方法:

public static System.Collections.Generic.IEnumerable EnumerateFiles (string path);public static System.Collections.Generic.IEnumerable EnumerateFiles (string path, string searchPattern);public static System.Collections.Generic.IEnumerable EnumerateFiles (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);public static System.Collections.Generic.IEnumerable EnumerateFiles (string path, string searchPattern, System.IO.SearchOption searchOption);

f.獲取當前目錄

public static string GetCurrentDirectory ();

在程序中調用這個方法可以獲取程序執行時的目錄,如果是在調試階段,目錄是指程序的主方法所在目錄;如果在發布之后,也就是運行階段,該目錄指程序所在目錄。

g.獲取上級目錄

public static System.IO.DirectoryInfo GetParent (string path);

獲取傳入目錄的上級目錄信息。

h.目錄移動

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

sourceDirName 移動到 destDirName,其中destDirName所代表的目錄不能存在。這個方法有個很有意思的特點,它也支持移動文件。也就是說,如果sourceDirNanme指向的是一個文件,那么destDirName也必須是一個文件類型的路徑字符串。

i.刪除目錄

public static void Delete (string path);//刪除 path所代表的目錄,如果目錄非空則提示無法刪除public static void Delete (string path, bool recursive);// recursive指示是否同時刪除子目錄和文件

以上是Directory類的一些常用方法,當然還有更多的內容留待小伙伴一起發掘。傳送門==>https://docs.microsoft.com/zh-cn/dotnet/api/system.io.directory?view=netcore-3.1

1.2.2 DirectoryInfo

之前的篇幅我們介紹了Directory的工具類所支持的方法,接下來我們看一下 DirectoryInfo有哪些屬性和方法吧。

public DirectoryInfo (string path);

初始化的方式很簡單,直接傳遞一個目錄的路徑字符串,就可以獲取一個目錄信息類了。

接下來看看,DirectoryInfo支持的屬性:

public override bool Exists { get; }// 目錄是否存在public override string Name { get; }// 目錄名稱,不是路徑public System.IO.DirectoryInfo Parent { get; }//如果有上級目錄,則返回上級目錄,如果沒有則返回 nullpublic System.IO.DirectoryInfo Root { get; }//獲取目錄的根目錄

我們路過了DirectoryInfo的屬性,看到了它一部分特點,那么我們該怎么使用呢?

public void Create ();

創建目錄信息所代表的目錄,如果目錄已存在,則不會有任何變化 。如果這個目錄的父目錄也不存在,則自動創建父目錄

public System.IO.DirectoryInfo CreateSubdirectory (string path);

創建 pathi指定的子目錄。

public override void Delete ();

如果當前目錄是空目錄,調用可直接刪除,如果非空則會提示錯誤。

public void Delete (bool recursive);

根據參數 recursive指定是否刪除當前目錄的子目錄。

public System.IO.DirectoryInfo[] GetDirectories ();public System.IO.DirectoryInfo[] GetDirectories (string searchPattern);public System.IO.DirectoryInfo[] GetDirectories (string searchPattern, System.IO.EnumerationOptions enumerationOptions);public System.IO.DirectoryInfo[] GetDirectories (string searchPattern, System.IO.SearchOption searchOption);

獲取子目錄的數組,參數與 Directory 的同名方法一致。

public System.Collections.Generic.IEnumerable EnumerateDirectories ();public System.Collections.Generic.IEnumerable EnumerateDirectories (string searchPattern);public System.Collections.Generic.IEnumerable EnumerateDirectories (string searchPattern, System.IO.EnumerationOptions enumerationOptions);public System.Collections.Generic.IEnumerable EnumerateDirectories (string searchPattern, System.IO.SearchOption searchOption);

返回一個子目錄信息的可枚舉集合。

public System.IO.FileInfo[] GetFiles ();public System.IO.FileInfo[] GetFiles (string searchPattern);public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.EnumerationOptions enumerationOptions);public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.SearchOption searchOption);

嗯,依舊類似的寫法,獲取文件信息的數組

public System.Collections.Generic.IEnumerable EnumerateFiles ();public System.Collections.Generic.IEnumerable EnumerateFiles (string searchPattern);public System.Collections.Generic.IEnumerable EnumerateFiles (string searchPattern, System.IO.EnumerationOptions enumerationOptions);public System.Collections.Generic.IEnumerable EnumerateFiles (string searchPattern, System.IO.SearchOption searchOption);

返回文件的可枚舉集合。

public void MoveTo (string destDirName);

把當前目錄移動到對應的目錄。

依舊未完待續,下一篇將為大家介紹一下 Path類和FileInfo與DirectoryInfo的父類 FileSystemInfo 這兩個類的API,然后演示一下如何使用流來讀寫文件。在文件和目錄這塊內容里,我故意忽略了權限的介紹,這部分我將會放在進階篇中介紹。

API的介紹總是這么枯燥乏味,不過請期待一下,在IO篇完成后,我會演示一下如何做一個簡單的文件查找工具。

簡單介紹一下這個工具的內容:它會遍歷系統里所有文件的路徑信息,然后記錄到一個緩存文件中,用戶輸入一個要查詢的文件名時,我們可以通過讀取緩存文件確認文件所在目錄。

總結

以上是生活随笔為你收集整理的c# 找出目录下的所有子目录_C# 基础知识系列- 14 IO篇 文件的操作(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。