mam zadanie napisać obiekt, który może odbierać różne typy ścieżek/URL i zwraca jaki rodzaj ścieżki/URL jest. Na przykład ścieżka może byćścieżki fizyczne, względne, bezwzględne i inne
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
... i tak dalej.
Jak mogę sprawdzić w C#
czy to fizyczne, ścieżkę względną lub bezwzględną URL, adres URL?
myślę, że to stosunkowo łatwo poznać, czy to absolutna czy względna uri, ale jak wiem, czy jest to ścieżka UNC?
Próbowałem użyć obiektu Uri i jego własności IsUnc, ale tak naprawdę nie pomaga mi .... dla c: \ temp zwraca false, dla "/ temp", "temp /" i "temp" to wyrzuca wyjątek, że format jest niepoprawny. Czy istnieje jakiś obiekt wbudowany w .NET 3.5
, który może mi pomóc w tym lub jaki algorytm mogę użyć do określenia typu ścieżki?
No "/ temp" to rzeczywiście nie URI w ogóle. Jaki jest dokładny format, który chcesz sprawdzić? Jeśli są to tylko ścieżki i identyfikatory URI, możesz je najpierw rozróżnić i zastosować różne techniki dla każdego z nich. – Vlad
Dlaczego "/ temp" nie jest prawidłowym identyfikatorem URI? Myślę, że można to zinterpretować jako relatywne. Muszę sprawdzić wszystkie te formaty i zdecydować, jaki to jest ... czy to jest ścieżka UNC czy ścieżka URI ... jak mogę je rozróżnić? –
Cóż, http://tools.ietf.org/html/rfc3986. Nie zaczyna się od schematu, na przykład (http: lub plik: zrobiłby). – Vlad