1. ホーム
  2. c#

[解決済み] Windowsで、指定した文字列が正当なファイル名であるかどうかを確認するにはどうすればよいですか?

2022-04-21 15:23:03

質問

アプリケーションにファイル名の一括変更機能を搭載したいです。ユーザーがファイル名のパターンを入力し、(パターン内のいくつかのワイルドカードを置き換えた後)それがWindows上で合法なファイル名であるかどうかをチェックする必要があります。私は、次のような正規表現を使おうとしました。 [a-zA-Z0-9_]+ しかし、これでは様々な言語の多くの国特有の文字(例えばウムラウトなど)が含まれていません。このようなチェックを行うには、どのような方法があるでしょうか?

どのように解決するのですか?

無効な文字の一覧は、以下のサイトから取得することができます。 Path.GetInvalidPathChars GetInvalidFileNameChars .

UPDです。 参照 スティーブ・クーパーの提案 を正規表現で使用する方法について説明します。

UPD2です。 MSDN の Remarks によると、このメソッドから返される配列は、ファイル名やディレクトリ名で無効な文字の完全なセットを含むことは保証されていないことに注意しましょう。 sixlettervaliablesさんからいただいた回答 は、さらに詳しく解説しています。