Ich habe eine Aufgabe, um ein Objekt zu schreiben, das einen anderen Typ von Pfaden/URLs erhalten kann und zurückgibt, welche Art von Pfad/URL es ist. Zum Beispiel kann der PfadPhysikalische, relative, absolute und andere Pfade
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
... und so weiter sein.
Wie kann ich in C#
einchecken, wenn es physischer Pfad, relative URL oder absolute URL ist?
Ich denke, es ist relativ einfach zu wissen, ob es relativ oder absolut uri ist, aber wie kann man wissen, ob es UNC-Pfad ist?
Ich habe versucht, Uri-Objekt und IsUnc-Eigenschaft zu verwenden, aber es hilft mir nicht wirklich .... für c: \ temp gibt es false zurück, für "/ temp", "temp /" und "temp" es wirft eine Ausnahme, dass das Format falsch ist. Gibt es irgendein eingebautes Objekt in .NET 3.5
, das mir dabei helfen kann, oder welchen Algorithmus kann ich verwenden, um den Pfadtyp zu bestimmen?
Gut "/ temp" ist in der Tat nicht überhaupt URI. Was ist das genaue Format, das Sie überprüfen möchten? Wenn es sich nur um Pfade und URIs handelt, können Sie zunächst zwischen ihnen unterscheiden und unterschiedliche Techniken anwenden. – Vlad
Warum "/ temp" ist nicht gültig URI? Ich denke, es kann als relativ interpretiert werden. Ich muss alle diese Formate überprüfen und entscheiden, welcher Typ es ist ... ist es UNC-Pfad oder ist es URI-Pfad ... wie kann ich zwischen ihnen unterscheiden? –
Nun, http://tools.ietf.org/html/rfc3986. Es startet nicht mit einem Schema, zum Beispiel (http: oder file: würde tun) – Vlad