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

歡迎訪問 生活随笔!

生活随笔

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

C#

C# 中文件路径的操作

發布時間:2024/9/20 C# 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 中文件路径的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在程序中對文件操作是非常常見的,而對文件的操作則不可避免的需要文件的路徑,并對文件的路徑進行一系列的操作,例如:判斷已知的路徑是一個目錄還是一個文件,路勁是一個文件則該文件的名稱是什么,文件的擴展名名是什么等等。在C#中并并沒有將文件的路徑抽象為一個類,用來表示文件路徑就是一個普通的字符串。對文件路徑的操作例如,要獲取文件名稱,可以通過截取字符串或者使用正則表達式來取得。

其實,在.NET類庫中,有一個專門的功能類System.IO.Path,對表示文件或在目錄路徑的string進行操作。下面介紹下利用Path來對文件路徑進行的一些誒常用操作。

  • 判斷給出的路徑或者文件名是否合法
    Path.GetInvalidFileNameChars() 該方法返回一個char[] 指出不能在文件名中出現的字符。 /// <summary>/// 判斷文件名是否合法/// </summary>/// <param name="fileName">文件名</param>/// <returns>ture,合法;false,非法</returns>public bool validFileName(string fileName){if(!string.IsNullOrEmpty(fileName)){char [] errChars = Path.GetInvalidFileNameChars() ;foreach(char ch in errChars){if(fileName.Contains(ch.ToString()))return false ;}}else{return false ;}return true ;}

假如文件名稱是非法的,可以利用下面的方法,移除非法字符

/// <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:\imagesConsole.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() 能夠設置環境變量

總結

以上是生活随笔為你收集整理的C# 中文件路径的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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