淺析C#中文件途徑的操作。本站提示廣大學習愛好者:(淺析C#中文件途徑的操作)文章只能為提供參考,不一定能成為您想要的結果。以下是淺析C#中文件途徑的操作正文
在順序中對文件操作是十分罕見的,而對文件的操作則不可防止的需求文件的途徑,並對文件的途徑停止一系列的操作,例如:判別已知的途徑是一個目錄還是一個文件,路勁是一個文件則該文件的稱號是什麼,文件的擴展名名是什麼等等。在C#中並並沒有將文件的途徑籠統為一個類,用來表示文件途徑就是一個普通的字符串。對文件途徑的操作例如,要獲取文件稱號,可以經過截取字符串或許運用正則表達式來獲得。
其實,在.NET類庫中,有一個專門的功用類System.IO.Path,對表示文件或在目錄途徑的string停止操作。上面引見下應用Path來對文件途徑停止的一些诶常用操作。
判別給出的途徑或許文件名能否合法
Path.GetInvalidFileNameChars() 該辦法前往一個char[] 指出不能在文件名中呈現的字符。
C/C++ Code復制內容到剪貼板
假設文件稱號是合法的,可以應用上面的辦法,移除合法字符
/// <summary> /// 除掉文件名中的合法字符 /// </summary> /// <param name="fileName"></param> /// <returns>合法的文件名</returns> public string fixedFileName(string fileName) { char[] errChars = Path.GetInvalidFileNameChars(); StringBuilder fileNameBuilder = new StringBuilder(fileName) ; foreach(char ch in errChars) { fileNameBuilder.Replace(ch.ToString(),string.Empty); } return fileNameBuilder.ToString(); }
同理運用Path.GetInvalidPathChars()來獲取不能在目錄途徑中呈現的字符,來判別給出的目錄途徑能否合法,並且對合法的目錄途徑停止修正。
判別給出的途徑是目錄途徑還是文件途徑
假如可以確定給出的途徑是曾經存在的,那麼可以運用Directory.Exists()和File.Exists()來判別途徑是目錄還是文件。不能確定給定的途徑存在,可以運用Path.GetFileName()獲取途徑中的文件名,如能取到文件名顯然途徑是一個文件途徑,如不能則是途徑。闡明,目錄途徑的最後一個字符應該是以'\'來完畢。
兼並途徑
有些途徑的不同局部是從不同的中央獲得,這是需求將這些局部停止組合,構成一個完好的途徑。在組合的進程中不可防止的要觸及到對”\”的處置,這時可以運用Path.Combine()把途徑的不同局部組合到一同。Path.Combine()有多種方式的重載,滿足不同的需求。需求闡明的是,在用Path.Combine()不承受不合法的文件名或許途徑名,並且在兼並時,假如某一個局部是從相對途徑開端的,則兼並操作重置為從該相對途徑開端,捨棄後面的曾經兼並的途徑。例如:
string[] paths = {@"d:\archives", "2001", "e:\\", "images"}; string fullPath = Path.Combine(paths); //fullPath 為 e:\images Console.WriteLine(fullPath); fullPath為e:\images
獲取途徑的特定局部,如:文件名,擴展名,文件目錄等
Path.GetFileName(path);//獲取文件名 Path.GetFileNameWithoutExtension(path); //獲取文件名,不帶擴展名 Path.GetExtension(path) ; //獲取文件擴展名 Path.GetDirectoryName(path) ; //獲取文件目錄 Path.GetPathRoot(path) ;//獲取根目錄信息
更詳細的可以參看MSDN http://msdn.microsoft.com/zh-cn/library/system.io.path_methods.aspx
Path其它的一些功用函數
Path.GetRandomFileName() 獲取一個隨機的文件名或許目錄名 Path.GetTempFileName() 創立磁盤上獨一命名的零字節的一個暫時文件並前往該文件的完好途徑 Path.GetTempPath() 獲取以後用戶的暫時目錄途徑 Path.HasExtension() 確定途徑能否包括文件擴展名
獲取和使用順序相關的途徑
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 獲取模塊的完好途徑,包括文件名。 System.Environment.CurrentDirectory 獲取或設置使用順序以後任務目錄的完全限定途徑 System.IO.Directory.GetCurrentDirectory() 獲取或設置使用順序的以後任務目錄,不一定是使用順序的啟動目錄,是使用順序最後一次操作過的目錄。
環境變量相關
運用System.Environment.GetEnvironmentVariable()可以獲取和環境變量相關的文件途徑,例如:
System.Environment.GetEnvironmentVariable("windir") 獲取操作零碎所在的目錄 System.Environment.GetEnvironmentVariable("INCLUDE") 獲取頭文件所在的目錄 System.Environment.GetEnvironmentVariable("TMP") 獲取暫時目錄 System.Environment.GetEnvironmentVariable("Path") 獲取Path環境變量所包括的文件目錄
自然,運用System.Environment.SetEnvironmentVariable() 可以設置環境變量