1

.NET には、文字列が構文的に正しいパスであるかどうかをテストする関数はありますか? パスが実際に存在するかどうかをテストしたくありません。

これに対する私の現在の見解は正規表現です:

([a-zA-Z]:|\\)?\\?([^/\\:*?"<>|]+[/\\])*[^/\\:*?"<>|]*

一致:

c:\
bbbb
\\bob/john\
..\..\

拒否:

xy:
c:\\bob
4

3 に答える 3

3

System.IO.Path.GetFullPath(path) は、存在するかどうかを確認せずに構文的に正しいパスでない場合、例外をスローすると思います。

于 2008-11-20T22:57:07.700 に答える
1

パスが存在するかどうかを特にテストしたくないので、これには正規表現を使用することをお勧めします。

グーグルが私を助けてくれたものは次のとおりです:

RegEx="^([a-zA-Z]\:|\\\\[^\/\\:*?"<>|]+\\[^\/\\:*?"<>|]+)(\\[^\/\\:*?"<>|]+)+(\.[^\/\\:*?"<>|]+)$"

これを System.IO.Path.GetInvalidPathChars() メソッドと組み合わせて、正規表現ですべての無効な文字を動的に除外することができます。

于 2008-11-20T22:52:37.367 に答える
0

System.IO.Path と GetInvalidPathChars() 関数を使用できますか?

于 2008-11-20T22:54:08.797 に答える