Ho un compito di scrivere un oggetto che può ricevere un diverso tipo di percorsi/URL e restituire quale tipo di percorso/url è. Ad esempio il percorso può esserePercorsi fisici, relativi, assoluti e altri
1. [drive]:\Temp
2. \\Temp
3. Temp (assuming that it relative Temp),
4. /Temp
5. ~/Temp
6. file://[drive]:/Temp
7. file://Temp
8. [scheme]://something/Temp
... e così via.
Come posso verificare in C#
se è percorso fisico, url relativo o URL assoluto?
Penso che sia relativamente facile sapere se è uri relativo o assoluto, ma come sapere se si tratta di un percorso UNC?
Ho provato a utilizzare l'oggetto Uri e la sua proprietà IsUnc, ma in realtà non mi aiuta .... per c: \ temp restituisce false, per "/ temp", "temp /" e "temp" che genera un'eccezione che il formato non è corretto. Esiste un oggetto incorporato in .NET 3.5
che può aiutarmi con questo o quale algoritmo posso usare per determinare il tipo di percorso?
Bene, "/ temp" è in effetti non è un URI a tutti. Qual è il formato esatto che vuoi controllare? Se si tratta solo di percorsi e URI, è possibile innanzitutto distinguere tra loro e applicare tecniche diverse per ciascuno. – Vlad
Perché "/ temp" non è un URI valido? Penso che possa essere interpretato come relativo. Ho bisogno di controllare tutti questi formati e decidere di che tipo si tratta ... è il percorso UNC o il percorso URI ... come posso differenziarli? –
Bene, http://tools.ietf.org/html/rfc3986. Non inizia con uno schema, ad esempio (http: o file: would do) – Vlad