C# dotnet ファイル名・パス名で使用できない文字を検出

GetInvalidFileNameChars結果

C# .NET 6 でファイル名を指定する場合、ファイル名・パス名で使用できない文字を

検出できるメソッドが用意されています。

ファイル名の使用できない文字を検出

コード例

using System.IO;

string fileName = "フ\0ァイ/ル名1";

foreach(char invalidChar in Path.GetInvalidFileNameChars()){
    if (fileName.Contains(invalidChar) ){   // ファイル名として利用できない場合 true
        Console.WriteLine("利用できない文字 = {0:c}(0x{1:X4})", invalidChar, (int)invalidChar);
    }
}
結果 (macOSの場合)

GetInvalidFileNameChars()を実行した場合、macOSでは [0x00,0x2F]が返る

パス名の使用できない文字を検出

コード例

using System.IO;

string pathName = "フ\0ァイ/ル名1";

foreach(char invalidChar in Path.GetInvalidPathChars()){
    if (pathName.Contains(invalidChar) ){   // ファイル名として利用できない場合 true
        Console.WriteLine("利用できない文字 = {0:c}(0x{1:X4})", invalidChar, (int)invalidChar);
    }
}

GetInvalidPathChars()は、 macOSの場合 [0x00]が返る

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED