C#

【C#】ファイルパスに使用禁止の文字が含まれているかチェックする方法

C#でアプリケーションを作っているとファイルパスを何かの入力として渡したり、あるいはその逆で処理した結果を特定のファイルパスに保存という場面が多々あります。

ファイルパスというと何の文字を使っても良いと思われがちですが、実は使用禁止の文字があります。

今回はどのような文字が使用禁止なのかと、C#でファイルパスに使用禁止の文字が含まれていないかをチェックする方法を紹介します。

エラーチェックで役に立ててくださいね。

ファイルパスに使用禁止の文字例

そもそもどんな文字がファイルパスに使用禁止なのかというと、例えば以下のような文字です。

  • <
  • >
  • |

他にもいくつもありますが、上記のような文字がファイルパスに含まれるとアプリケーションでファイルの処理が上手くできずにエラーが発生する場合があります。

Path.GetInvalidPathCharsの文字が含まれているか確認する

C#の標準ライブラリのクラスにPathというファイル処理を行っているクラスがあります。

その中にGetInvalidPathCharsというメソッドがあるので、このメソッドの戻り値を使ってチェックをしましょう。

Path.GetInvalidPathChars仕様

以下Microsoftサイトより↓

戻り値

char[]型

ファイル名に使用できない文字を含む配列。

サンプルソース

出力結果

Path.GetInvalidPathCharsで不正文字の配列を取得した後、ファイルパスの文字列内に不正文字が含まれていないかをStringクラスのIndexOfメソッドを使って検索しています。

不正文字が含まれている場合はコンソールへ出力します。

使用する際の注意点

取得するだけなので特に注意点はありません。

ファイル処理する際に例外で捕捉するという人はそもそもあまりこのメソッドを使う機会は無いかもしれません。ファイル処理前に事前チェックをしたい場合のみ使ってみてはいかがでしょうか。