パスとファイル名から不正な文字を削除するにはどうすればいいですか? 質問する

パスとファイル名から不正な文字を削除するにはどうすればいいですか? 質問する

単純な文字列から不正なパスとファイル文字を削除する堅牢で簡単な方法が必要です。以下のコードを使用しましたが、何も実行されないようです。何が足りないのでしょうか?

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string illegal = "\"M<>\"\\a/ry/ h**ad:>> a\\/:*?\"<>| li*tt|le|| la\"mb.?";

            illegal = illegal.Trim(Path.GetInvalidFileNameChars());
            illegal = illegal.Trim(Path.GetInvalidPathChars());

            Console.WriteLine(illegal);
            Console.ReadLine();
        }
    }
}

ベストアンサー1

元の質問では、「不正な文字を削除する」よう求められていました。

public string RemoveInvalidChars(string filename)
{
    return string.Concat(filename.Split(Path.GetInvalidFileNameChars()));
}

代わりに、次のものを置き換えることもできます。

public string ReplaceInvalidChars(string filename)
{
    return string.Join("_", filename.Split(Path.GetInvalidFileNameChars()));    
}

この回答はCeresの別のスレッドにありました、すっきりとシンプルでとても気に入っています。

おすすめ記事