在檔案上傳時,隨時會需要組檔案路徑、檔案名稱的需求,而 .Net 提供了 Path 類別,可以讓我們輕鬆地完成。以下整理了網路蒐集而來的用法,可以很快地瞭解到如何使用 Path。
需引用的命名空間:
System.IO;
string strPath = @"D:\myUpload\file01.txt";
//取得完整路徑
Path.GetFullPath(strPath); → D:\myUpload\file01.txt
//取得根目錄
Path.GetPathRoot(strPath); → D:\
//取得目錄名稱
Path.GetDirectoryName(strPath); → D:\myUpload
//取得檔名
Path.GetFileName(strPath); → file01.txt
//取得檔名(不含副檔名)
Path.GetFileNameWithoutExtension(strPath); → file01
//取得副檔名
Path.GetExtension(strPath); → .txt
//變更副檔名
Path.ChangeExtension(strPath, "jpg"); → D:\myUpload\file01.jpg
//結合路徑(前面路徑後面有無倒斜線都沒差)
Path.Combine("D:\myUpload", "test.jpg"); → D:\myUpload\test.jpg
Path.Combine("D:\myUpload\", "test.jpg"); → D:\myUpload\test.jpg
//建立並取得唯一的暫存檔完整路徑
Path.GetTempFileName(); → C:\Users\paladin_adm\AppData\Local\Temp\tmp3723.tmp
//取得目前系統的暫存資料夾
Path.GetTempPath(); → C:\Users\paladin_adm\AppData\Local\Temp\
//取得隨機檔案名稱
Path.GetRandomFileName(); → xib2n5aq.n5j
針對不同的檔案名稱測試
-------------------------
Input:cat.aspx
Result:
GetFileName: cat.aspx
GetFileNameWithoutExtension: cat
GetDirectoryName:
-------------------------
Input:really-long-page.aspx
Result:
GetFileName: really-long-page.aspx
GetFileNameWithoutExtension: really-long-page
GetDirectoryName:
-------------------------
Input:test.aspx
Result:
GetFileName: test.aspx
GetFileNameWithoutExtension: test
GetDirectoryName:
-------------------------
Input:invalid-page
Result:
GetFileName: invalid-page
GetFileNameWithoutExtension: invalid-page
GetDirectoryName:
-------------------------
Input:something-else.aspx
Result:
GetFileName: something-else.aspx
GetFileNameWithoutExtension: something-else
GetDirectoryName:
-------------------------
Input:Content/Rat.aspx
Result:
GetFileName: Rat.aspx
GetFileNameWithoutExtension: Rat
GetDirectoryName: Content
-------------------------
Input:http://dotnetperls.com/Cat/Mouse.aspx
Result:
GetFileName: Mouse.aspx
GetFileNameWithoutExtension: Mouse
GetDirectoryName: http:\dotnetperls.com\Cat
-------------------------
Input:C:\Windows\File.txt
Result:
GetFileName: File.txt
GetFileNameWithoutExtension: File
GetDirectoryName: C:\Windows
-------------------------
Input:C:\Word-2007.docx
Result:
GetFileName: Word-2007.docx
GetFileNameWithoutExtension: Word-2007
GetDirectoryName: C:\
特別要注意的,是 Path.Combine(string1,string2) 裡的 string1,不管後面是否有倒斜線,都沒有關系。另外在Dot Net Pers網站上有提到,如果你使用 Path 類別來處理 URL 的字串時,要注意轉換後的節果,原本 URL 的斜線會變成倒斜線。
參考網址:
01.http://www.dotnetperls.com/path
02.http://www.dotblogs.com.tw/sam319/archive/2009/12/21/12589.aspx
2011年4月27日 星期三
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言