0

のような .NET メソッドPath.IsPathRooted()は優れていますが、入力文字列が有効でない場合はスローされます。これは問題ありませんが、例外チェック コードブロックにジャンプする前に、入力文字列が有効なパスであるかどうかを事前にチェックすることをお勧めします。

が見当たらないのPath.IsValidPath()ですが、このようなものはありますか?

4

3 に答える 3

1

ドキュメントによると、

ArgumentException[次の場合にスローされます] パスに、GetInvalidPathChars で定義された無効な文字が 1 つ以上含まれています。

これは、次のようにパス文字列を事前に検証できることを意味します。

if (path.IndexOfAny(Path.GetInvalidPathChars()) != -1) {
    // This means that Path.IsPathRooted will throw an exception
    ....
}

これは、 がIsPathRooted例外をスローする唯一の条件です。

これがどのように実装されているかについては、496 行目のMono ソースを参照してください。Path.cs

于 2013-02-08T15:16:22.103 に答える
1

File.Existsまたはを使用できますDirectory.Exists

パスに (NET 2.0 で) 不正な文字が含まれているかどうかを確認したい場合は、次を使用できますPath.GetInvalidPathChars

char[] invalidChars = System.IO.Path.GetInvalidPathChars();
bool valid = path.IndexOfAny(invalidChars) != -1;
于 2013-02-08T15:17:21.697 に答える