Domanda

In .NET esiste una funzione che verifica se una stringa è sintatticamente un percorso corretto? In particolare, non voglio che verifichi se il percorso esiste effettivamente.

la mia opinione attuale su questo è una regex:

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

partite:

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

respinge:

xy:
c:\\bob
È stato utile?

Soluzione

Suggerirei di usare solo una regex per questo dato che in particolare non vuoi testare se il percorso esiste.

Ecco qualcosa google mi ha aiutato a scavare :

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

Potresti combinarlo con il metodo System.IO.Path.GetInvalidPathChars () e far sì che il regex escluda dinamicamente tutti i caratteri non validi.

Altri suggerimenti

Credo che System.IO.Path.GetFullPath (percorso) genererà un'eccezione se non è un percorso sintatticamente corretto senza verificare se esiste.

Potresti essere in grado di utilizzare System.IO.Path e la funzione GetInvalidPathChars ()?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top