亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

淺析C#中文件路徑的操作

2020-01-24 00:53:38
字體:
來源:轉載
供稿:網友

在程序中對文件操作是非常常見的,而對文件的操作則不可避免的需要文件的路徑,并對文件的路徑進行一系列的操作,例如:判斷已知的路徑是一個目錄還是一個文件,路勁是一個文件則該文件的名稱是什么,文件的擴展名名是什么等等。在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:/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() 能夠設置環境變量

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97精品国产97久久久久久春色| 国产成人av在线| 色偷偷偷亚洲综合网另类| 欧美视频二区36p| 国产精品网站大全| 久久精品国产综合| 日日骚av一区| 日韩小视频在线| 一区国产精品视频| 国产精品xxx视频| 久久精品一偷一偷国产| 91影院在线免费观看视频| 午夜精品久久久久久久99黑人| 久久成人精品电影| 亚洲激情自拍图| 国产精品一区二区三区久久久| 欧美色视频日本高清在线观看| 成人啪啪免费看| 国产欧美 在线欧美| 欧美成人一区在线| 国产精品xxxxx| 久久久国产精品免费| 欧美激情视频在线免费观看 欧美视频免费一| 欧美成人小视频| 国内精品在线一区| 欧美大片欧美激情性色a∨久久| 亚洲高清久久久久久| 亚洲欧美另类人妖| 色偷偷偷综合中文字幕;dd| 国产精品自在线| 亚洲性xxxx| 欧美日韩亚洲精品内裤| 在线播放国产一区中文字幕剧情欧美| 97人人做人人爱| 国产精品盗摄久久久| 亚洲无线码在线一区观看| 欧美国产中文字幕| 亚洲国产成人一区| 亚洲国产第一页| 九九精品在线播放| www.日韩视频| 国产99视频精品免视看7| 国产成人avxxxxx在线看| 日韩一二三在线视频播| 久久国产精品首页| 国产在线久久久| 97免费中文视频在线观看| 亚洲在线www| 欧美一乱一性一交一视频| 亚洲自拍高清视频网站| 日韩av电影在线播放| 日韩av影院在线观看| 激情成人在线视频| 亚洲第一福利网站| 亚洲最新视频在线| 日本韩国欧美精品大片卡二| 日韩欧美亚洲成人| 亚洲午夜精品久久久久久性色| 草民午夜欧美限制a级福利片| 国模私拍视频一区| 欧美噜噜久久久xxx| 91高清免费在线观看| 狠狠做深爱婷婷久久综合一区| 亚洲高清在线观看| 国内揄拍国内精品少妇国语| 一本大道香蕉久在线播放29| 亚洲一区中文字幕| 欧美一区二区色| 亚洲欧洲高清在线| 91av免费观看91av精品在线| 亚洲欧美另类人妖| 色综合久久久888| 久久av资源网站| 亚洲专区国产精品| 草民午夜欧美限制a级福利片| 色噜噜狠狠色综合网图区| 97精品免费视频| 欧美大学生性色视频| 国产91色在线| 日韩精品中文字幕有码专区| 8x海外华人永久免费日韩内陆视频| 亚洲丁香婷深爱综合| 日韩精品视频免费专区在线播放| 国产精品视频专区| 亚洲成人aaa| 91在线观看欧美日韩| 91高清免费视频| 尤物九九久久国产精品的分类| 久久久久久噜噜噜久久久精品| 影音先锋日韩有码| 欧美老女人bb| 亚洲亚裔videos黑人hd| 91精品国产综合久久香蕉922| 亚洲女人天堂色在线7777| 92国产精品视频| 综合欧美国产视频二区| 国产一区二区三区久久精品| 国产精品久久999| 久久91精品国产91久久跳| 中文字幕久久久av一区| 精品日本美女福利在线观看| 久久久av一区| 欧美电影免费观看大全| 成人黄色在线观看| 国产在线观看精品| 亚洲福利精品在线| 国内自拍欧美激情| 91chinesevideo永久地址| 国产视频久久久久| 欧美日产国产成人免费图片| 亚洲精品综合精品自拍| 久久成人综合视频| 欧美寡妇偷汉性猛交| 国产视频精品久久久| 欧美日韩日本国产| 欧美一区二区三区四区在线| 国产欧美欧洲在线观看| 97精品国产aⅴ7777| 2020国产精品视频| 国外成人免费在线播放| 一本色道久久88亚洲综合88| 日韩电影中文 亚洲精品乱码| 91久久久久久久| 日本精品久久中文字幕佐佐木| 亚洲国产精品人人爽夜夜爽| 少妇高潮 亚洲精品| 亚洲深夜福利视频| 日韩在线播放av| 亚洲国产精品人人爽夜夜爽| 日本精品性网站在线观看| 91中文字幕在线| 日韩美女在线观看| 九色精品免费永久在线| 亚洲一区二区福利| 国产精品美女久久久久久免费| 久久视频国产精品免费视频在线| 欧美性猛交xxxxx水多| 亚洲欧美日韩精品久久| 欧美性jizz18性欧美| 影音先锋日韩有码| 久久精彩免费视频| 97在线视频免费播放| 日韩欧美aⅴ综合网站发布| 一色桃子一区二区| 精品调教chinesegay| 日本久久久久久久久| 欧美午夜无遮挡| 亚洲激情成人网| 色狠狠久久aa北条麻妃| 欧美性xxxx极品hd欧美风情| 7777免费精品视频| 狠狠操狠狠色综合网| 成人激情电影一区二区| 91精品国产一区| 欧美丰满老妇厨房牲生活| 成人精品视频99在线观看免费| 丝袜一区二区三区| 成人黄色片网站| 日本精品视频在线| 国产成人在线播放| 久久人人爽人人爽人人片av高请| 91精品免费久久久久久久久| 日韩成人高清在线| 狠狠色狠色综合曰曰|