Test per un percorso sintatticamente corretto
-
08-07-2019 - |
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
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 ()?