ホームページ >バックエンド開発 >C++ >ファイルパスやファイル名内の不正な文字を効果的に削除または置換するにはどうすればよいですか?

ファイルパスやファイル名内の不正な文字を効果的に削除または置換するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-21 09:01:09576ブラウズ

How to Effectively Remove or Replace Illegal Characters in File Paths and Filenames?

ファイル パスとファイル名内の不正な文字を削除します

プログラミングでは、ファイル パスとファイル名を操作する際に、エラーや互換性の問題を防ぐために、それらが有効な文字セットに準拠していることを確認する必要があることがよくあります。これには、不正な文字の削除も含まれます。効果的な解決策を検討してみましょう。

元の質問で提供されているコード スニペットは、Trim() メソッドを使用して不正なパスとファイル文字を削除しようとしています。ただし、Trim() は先頭と末尾の空白に対してのみ動作するため、これは失敗します。必要な文字を削除するには、GetInvalidFileNameChars() メソッドと GetInvalidPathChars() メソッドを使用する必要があります。

この問題の解決策は次のとおりです:

<code class="language-c#">public string RemoveInvalidChars(string path)
{
    // 移除非法的文件字符
    path = string.Join("", path.Split(Path.GetInvalidFileNameChars(), StringSplitOptions.RemoveEmptyEntries));

    // 移除非法的路径字符
    path = string.Join("", path.Split(Path.GetInvalidPathChars(), StringSplitOptions.RemoveEmptyEntries));

    return path;
}</code>

このメソッドはパスを入力として受け取り、これらのポイントで文字列を分割することで不正な文字を削除します。無効な文字を効果的に削除し、パスをサニタイズします。

あるいは、不正な文字を削除する代わりに、置換することもできます。その方法の 1 つを次に示します:

<code class="language-c#">public string ReplaceInvalidChars(string path)
{
    path = string.Join("_", path.Split(Path.GetInvalidFileNameChars(), StringSplitOptions.RemoveEmptyEntries));
    path = string.Join("_", path.Split(Path.GetInvalidPathChars(), StringSplitOptions.RemoveEmptyEntries));

    return path;
}</code>

このメソッドでは、不正な文字が発生する文字列を分割し、アンダースコアに置き換えます。これにより、文字列に不正な文字が含まれなくなり、読み取り可能な状態が維持されます。

どちらの方法も、パスやファイル名内の不正な文字を処理するための信頼性が高く効率的な方法を提供し、それらが有効であり、オペレーティング システムやアプリケーションと互換性があることを保証します。

以上がファイルパスやファイル名内の不正な文字を効果的に削除または置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。