のような .NET メソッドPath.IsPathRooted()
は優れていますが、入力文字列が有効でない場合はスローされます。これは問題ありませんが、例外チェック コードブロックにジャンプする前に、入力文字列が有効なパスであるかどうかを事前にチェックすることをお勧めします。
が見当たらないのPath.IsValidPath()
ですが、このようなものはありますか?
ドキュメントによると、
ArgumentException
[次の場合にスローされます] パスに、GetInvalidPathChars で定義された無効な文字が 1 つ以上含まれています。
これは、次のようにパス文字列を事前に検証できることを意味します。
if (path.IndexOfAny(Path.GetInvalidPathChars()) != -1) {
// This means that Path.IsPathRooted will throw an exception
....
}
これは、 がIsPathRooted
例外をスローする唯一の条件です。
これがどのように実装されているかについては、496 行目のMono ソースを参照してください。Path.cs
File.Exists
またはを使用できますDirectory.Exists
。
パスに (NET 2.0 で) 不正な文字が含まれているかどうかを確認したい場合は、次を使用できますPath.GetInvalidPathChars
。
char[] invalidChars = System.IO.Path.GetInvalidPathChars();
bool valid = path.IndexOfAny(invalidChars) != -1;