摘要:C# - Path.GetInvalidPathChars & Path.GetInvalidFileNameChars
一般在建立 資料夾 或 檔案 時,都會對所建立的名稱做字元上的限制,所以在建立時 OS 都會提出訊息。
不過,在程式撰寫時,也常遇到需要建立 資料夾 或 檔案 名稱;說到這,是否已經有想到用 RegularExpressions 來處理呢!? 是的,就是使用 RegularExpressions 來使用,那...請問要怎麼下呢!? 嗯嗯...好問題...
筆者想,應該是不用那麼麻煩才是,這個「怎麼下」的任務就交給 dot NET 的 Path.GetInvalidPathChars & Path.GetInvalidFileNameChars 來處理吧...
Code:
using System;
using System.IO;
using System.Text.RegularExpressions;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string strWord = @"https://www.google.com/";
string strExcludeChar = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
Regex r = new Regex(string.Format("[{0}]", Regex.Escape(strExcludeChar)));
string strResult = r.Replace(strWord, "_");
Console.WriteLine("轉換前:{0}", strWord);
Console.WriteLine("轉換後:{0}", strResult);
Console.ReadKey();
}
}
}
結果:
參考:
Regex.Escape 方法
Path.GetInvalidPathChars 方法
Path.GetInvalidFileNameChars 方法