【c#】フォルダー構成に必要な文字が含まれていないか検証する

C#

フォルダーの名前には \ / : * ? ” < > |などは使用することができません。

本記事では正規表現を用いて \ / : * ? ” < > | の文字が指定した文字列の中に含まれているか否かチェックするサンプルを紹介します。

本記事のサンプルはあくまでも\ / : * ? ” < > | が含まれるか否かを確認する仕様となります。フォルダー名に使えない文字は \ / : * ? ” < > | 以外にもあり、例えば、Path.GetInvalidPathCharsメソッドを使えば \ / : * ? ” < > | 以外のフォルダー名として使用できない文字を取得できたりもするので、さらに厳密にチェックすることもできると思います。

サンプル

下記がサンプルコードとなります。textbox1というテキストボックスに入力されている文字列の中に\ / : * ? ” < > |のどれかが含まれた場合にメッセージボックスを表示する動きをします。

if (Regex.IsMatch(textBox1.Text, @"[\\/:*?""<>|]"))
{
    MessageBox.Show("見つかりました");
}

正規表現の書きかたや今回用いたIsMatchメソッドの詳しい使い方は下記のページに書かれていますので参考にしてみてください。

正規表現言語 - クイック リファレンス - .NET
このクイック リファレンスでは、正規表現パターンを使用して入力テキストを照合する方法について説明します。 パターンには、1 個以上の文字リテラル、演算子、またはコンストラクトが含まれます。
Regex.IsMatch メソッド (System.Text.RegularExpressions)
正規表現と一致する対象が入力文字列内で見つかったかどうかを示します。
タイトルとURLをコピーしました