Pregunta

En .NET, ¿hay alguna función que pruebe si una cadena es sintácticamente una ruta correcta? Específicamente, no quiero que pruebe si la ruta realmente existe.

mi opinión actual sobre esto es una expresión regular:

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

coincide:

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

rechaza:

xy:
c:\\bob
¿Fue útil?

Solución

Sugeriría simplemente usar una expresión regular para esto, ya que específicamente no desea probar si la ruta existe.

Aquí hay algo google me ayudó a desenterrar :

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

Puede combinar esto con el método System.IO.Path.GetInvalidPathChars () y hacer que la expresión regular excluya dinámicamente todos los caracteres no válidos.

Otros consejos

Creo que System.IO.Path.GetFullPath (ruta) lanzará una excepción si no es una ruta sintácticamente correcta sin verificar si existe.

¿Es posible que pueda usar System.IO.Path y la función GetInvalidPathChars ()?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top