Path 類
對包含文件或目錄路徑信息的 String 實例執行操作。 這些操作是以跨平台的方式執行的。
路徑是提供文件或目錄位置的字符串。
路徑可以包含絕對或相對位置信息。
若要確定當前目錄,請調用 Directory.GetCurrentDirectory。
Path 類的所有成員都是靜態的,因此無需具有路徑的實例即可被調用。
常用方法:
Path.GetFullPath 方法
返回指定路徑字符串的絕對路徑
——語法:
public static string GetFullPath(
string path
)
——參數
path
類型:System.String
要為其獲取絕對路徑信息的文件或目錄。
——返回值
類型:System.String
path 的完全限定的位置,例如“C:\MyFile.txt”。
備注:path 指定的文件或目錄不需要存在。 例如,如果 c:\temp\newdir 是當前目錄,則對文件名(例如 test.txt)調用 GetFullPath 將返回 c:\temp\newdir\test.txt。 該文件不需要存在。
Path.GetFileName 方法
返回指定路徑字符串的文件名和擴展名。
與GetFullPath 方法 進行逆操作
Path.GetDirectoryName 方法
返回指定路徑字符串的目錄信息。
——語法:
public static string GetDirectoryName(
string path
)
——參數
path
類型:System.String
文件或目錄的路徑。
——返回值
類型:System.String
path 的目錄信息,如果 path 表示根目錄或為 null,則該目錄信息為 null。 如果 path 沒有包含目錄信息,則返回 String.Empty。
——備注:
由於返回的路徑不包含 DirectorySeparatorChar 或 AltDirectorySeparatorChar,因此將返回的路徑傳回 GetDirectoryName 方法會導致隨后每次調用得到的字符串時截斷一個文件夾級別。 例如,將路徑“C:\Directory\SubDirectory\test.txt”傳入 GetDirectoryName 方法將返回“C:\Directory\SubDirectory”。 將該字符串“C:\Directory\SubDirectory”傳入 GetDirectoryName 將導致返回“C:\Directory”。
Path.Combine 方法 (String, String)
將兩個字符串組合成一個路徑。返回字符串。
最多支持四個路徑的組合
=========================================================================
Directory 類
公開用於創建、移動和枚舉通過目錄和子目錄的靜態方法。無法繼承此類。
——備注
--------------------------------------------------------------------------------
將 Directory 類用於典型操作,如復制、移動、重命名、創建和刪除目錄。也可將 Directory 類用於獲取和設置與目錄的創建、訪問及寫入操作相關的 DateTime 信息。
由於所有的 Directory 方法都是靜態的,所以如果只想執行一個操作,那么使用 Directory 方法的效率比使用相應的 DirectoryInfo 實例方法可能更高。大多數 Directory 方法要求當前操作的目錄的路徑。
Directory 類的靜態方法對所有方法都執行安全檢查。如果打算多次重用某個對象,可考慮改用 DirectoryInfo 的相應實例方法,因為並不總是需要安全檢查。
常用方法:
Directory.GetFiles 方法 (String)
返回指定目錄中的文件的名稱。
命名空間:System.IO
——語法:
public static string[] GetFiles (
string path
)
——參數
path
將從其檢索文件的目錄。
——返回值
指定目錄中文件名的 String 數組。文件名包含完整路徑。
——備注:
文件名包含完整路徑。
此方法與將星號 (*) 指定為搜索模式的 GetFiles 方法相同。
允許 path 參數指定相對或絕對路徑信息。相對路徑信息被解釋為相對於當前工作目錄。若要獲取當前工作目錄,請參見 GetCurrentDirectory。
path 參數不區分大小寫。
Directory.GetFiles 方法 (String, String) //重載的
返回指定目錄中與指定搜索模式匹配的文件的名稱。
——語法:
public static string[] GetFiles (
string path,
string searchPattern
)
——參數
path
要搜索的目錄。
searchPattern
要與 path 中的文件名匹配的搜索字符串。此參數不能以兩個句點(“..”)結束,不能在 DirectorySeparatorChar 或 AltDirectorySeparatorChar 的前面包含兩個句點(“..”),也不能包含 InvalidPathChars 中的任何字符。
——返回值
一個 String 數組,它包含指定目錄中與指定搜索模式匹配的文件的名稱。文件名包含完整路徑。
——備注:
文件名包含完整路徑。
在 searchPattern 中允許使用以下通配說明符。
通配符
*
零個或多個字符。
?
正好一個字符。
通配說明符以外的字符表示它們自己。例如,searchPattern 字符串“*t”搜索 path 中所有以字母“t”結尾的名稱。searchPattern 字符串“s*”搜索 path 中所有以字母“s”開頭的名稱。
其它常用 Directory 成員
——公共方法:
CreateDirectory 已重載。 創建指定路徑中的所有目錄。
Delete 已重載。 刪除指定的目錄。
Equals 已重載。 確定兩個 Object 實例是否相等。 (從 Object 繼承。)
GetCreationTime 獲取目錄的創建日期和時間。
GetCurrentDirectory 獲取應用程序的當前工作目錄。
GetDirectories 已重載。 獲取指定目錄中子目錄的名稱。
GetFileSystemEntries 已重載。 返回指定目錄中所有文件和子目錄的名稱。
GetParent 檢索指定路徑的父目錄,包括絕對路徑和相對路徑。
GetType 獲取當前實例的 Type。 (從 Object 繼承。)
Move 將文件或目錄及其內容移到新位置。
ToString 返回表示當前 Object 的 String。 (從 Object 繼承。)
=========================================================================
以下代碼段是本人的一點實踐,
檢索某文件夾下所有包含檢索關鍵字的文件,打印到屏幕:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //檢索某文件夾下所有包含檢索關鍵字的文件,打印到屏幕 6 #region test 7 // Directory 8 9 //string path = Path.GetFullPath("1.txt"); 10 //Console.WriteLine(path); 11 //string tem=Path.GetFileName(path); 12 //Console.WriteLine(tem); 13 //Console.ReadKey(); 14 #endregion 15 string path = (@"F:\pdf"); //要找的目錄 16 string reg = @".*美.*\..*"; //正則表達式 17 //string reg = @".+美.+\..+"; 18 string[] filename = Directory.GetFiles(path);//Directory 從磁盤讀取文件名存入字符串數組 19 20 // MatchCollection mc=null; 21 for (int i = 0; i < filename.Length; i++) 22 { 23 24 string temp = Path.GetFileName(filename[i]); //把文件的完整路徑轉換成 文件名.擴展名 形式 25 MatchCollection mc = Regex.Matches(temp, reg); //正則表達式進行匹配, 26 27 //if (mc != null) //mc 始終不為null,所以始終打印 28 //{ 29 // Console.WriteLine(filename[i]); 30 //} 31 32 33 foreach (Match t in mc) 34 { 35 Console.WriteLine(filename[i]);//打印結果,完整路徑 36 Console.WriteLine(t); //打印結果,文件名.擴展名 形式 37 } 38 39 40 //for ( i = 0; i < mc.Count ; i++) 41 //{ 42 // Console.WriteLine(filename[i]); 43 //} 44 } 45 Console.ReadKey(); 46 47 } 48 }