Eine Anwendung, an der ich arbeite, umfasst den Zugriff auf Dateien im Netzwerk Dateifreigaben, und wir verwenden URIs, um die Speicherorte der Dateien anzugeben.Datei: URIs und Schrägstriche
Mein Verständnis der Datei: URI ist, dass sie die Form file://
+ Pfad annehmen sollten. Im Fall einer Windows-Netzwerkfreigabe sieht dieser Pfad etwa wie folgt aus: \\servername\dir\file
, daher wird der resultierende URI file:////servername/dir/file
.
Das scheint für Javas URI class großartig zu funktionieren, aber die Win32-API scheint einen file://servername/dir/file
Style-URI zu haben, den Java ablehnt, weil er "eine Autoritätskomponente" hat.
Ich verstehe Netzwerk-Freigabe-URIs richtig? Gibt es eine andere Möglichkeit, einen Pfad anzugeben, ohne dass sich Java über die Autorität beschwert?
Edit: Wir hofften in der Lage sein, Pfade als URIs zu speichern, um den Schema-Teil des URI zu verwenden, um andere Orte anzugeben (z. B. Datei: versus andere :). Aber wie erwähnt, es sieht aus wie Java nur seine eigenen Probleme mit URIs haben ...
Vielen Dank für Ihre schnelle Antwort. Der zweite Link war besonders hilfreich. Während es für mich Sinn machte, dass der gesamte Pfad im "Pfad" -Segment des URIs gespeichert würde, kann ich sehen, dass Java dies etwas uneinheitlich tut, also werde ich darauf achten, darauf zu achten. – Sammy1Am
Tatsächlich, so weit ich weiß, erfordert das Datei-URL-Schema nicht einmal den doppelten Schrägstrich, sondern nur einen einzigen Schrägstrich. In der Wildnis sind beide oft zu sehen. – hippietrail
https://tools.ietf.org/html/rfc3986#section-3 "Wenn keine Berechtigung vorhanden ist, kann der Pfad nicht mit zwei Schrägstrichzeichen beginnen" –