C# - Path.GetInvalidPathChars & Path.GetInvalidFileNameChars

摘要: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 方法