在.net中是否有內置的方法來編碼文件路徑,方法與編碼url相同?例如,如果我在文件名中包含非法字符,比如「whatever:whatever」,我希望它對「:」進行編碼,所以它仍然存在,只是進行編碼以便系統接受它。我想要做一些類似於Path.Encode(fileName)
對文件路徑進行編碼
這裏有什麼這樣的嗎?
這是我正在做的。我在wikipedia.org上爲我在www.wikipediamaze.com創建的遊戲颳了一個遊戲。當我進行屏幕抓取時,我將結果緩存在我的app_data文件夾中的一個文件中,該文件夾與我所在的維基百科網站的當前主題的名稱相匹配。舉例來說,如果我在的位置:
http://www.wikipedia.org/wiki/Kevin_Bacon
然後我湊該網頁,解析它,擦乾淨等,然後在磁盤緩存更快retireval以後。它被存儲在位置/App_Data/Kevin_Bacon (no file extension)
。這個偉大的工程,除非我的網頁上像
http://www.wikipedia.org/wiki/Wikipedia:About
試圖在/App_Data/Wikipedia:About
創建一個文件顯然是因爲不工作「:」字符是一個文件名非法。
UPDATE
這對我的偉大工程:
public static string EncodeAsFileName(this string fileName)
{
return Regex.Replace(fileName, "[" + Regex.Escape(
new string(Path.GetInvalidFileNameChars())) + "]", " ");
}
我可以問你爲什麼要這樣做嗎?它可以幫助我和其他人確定適當的解決方案。 – Lazarus 2009-06-23 12:17:58