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); } }
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]が返る