Bei einer file-URI spielt es keine Rolle, ob Windows oder nicht; diese sind immer gleich aufgebaut. Richtig würde die URL z. B. file:/pfad oder file://host/pfad lauten, wobei Pfadelemente mit einem forward slash voneinander getrennt werden und host leer sein kann. file:/R:/nwFotos/bild.png bzw. file:///R:/nwFotos/bild.png wären also gültige file-URIs.
Habe eine NAS und dort einen Ordner "nwFotos". Darin liegt ein PNG-Objekt.. nennen wir es: "bild.png"
PC-Linux greift darauf zu mit Pfad: <netzlaufwerk>/nwFotos/bild.png
(wird korrekt angezeigt!)
PC-Win greift darauf zu mit Pfad: R:\nwFotos\bild.png
(es wird nur ein StandardSymbol angezeigt)
Auf beiden PCs kann ich es per doppelklick öffnen...
Wie erstelle ich einen relativen Pfad zur Datei "bild.png" ???
wenn mein Progrämmchen mal auf dem LINUX-PC und mal auf dem Windows-PC gestartet wird.
Wie würde dann so ein "relativer Pfad" lauten?
<imgsrc="file:\\\r:\nwFotos\bild.jpg"alt="Keine Anzeige von Bild 1"title="Bild 1"/>
Dein NAS hat evtl. einen eingebauten Webserver, eine Nextcloud-Installation o.ä. Dann würde es sich anbieten die URLs zu den Dateien/Freigaben zu verwenden, statt der Pfade. Dann wird es unter Linux und Windows funktionieren. Also bspw.: http://<IP eg.: 192.168.178.55>/bilder/fotos/meinBild.png
Es gibt einen einfachen Trick unter Windows den richtigen Pfad inkl. der \ zu erzeugen. Man kopiert den Pfad im (Datei-)Explorer und fügt den im Firefox in die Adressleiste ein. FF ersetzt den Pfad mit der richtigen URL. Gleichzeitig kann man durch die Ordnerstruktur navigieren und weiter Dateien heraussuchen. Gleichzeitig würde man nach Zugangsdaten gefragt falls nötig und kann so feststellen ob der Zugriff möglich ist.
Also auch unter Windows kann man statt der \ einfach / nutzen - da hat man dann auch weniger Probleme mit dem Escapen und so.
Ansonsten ist es in Java Möglich, die APIs von java.io und java.nio zu nutzen. Wenn Du also eine Datei hast und Du darauf dann mit File zugreifen kannst, dann kannst du darüber auch die URL bekommen: File.toURI
(Das kann dann helfen, wenn man die URI nicht selbst aufbauen kann.)
Bei einer file-URI spielt es keine Rolle, ob Windows oder nicht; diese sind immer gleich aufgebaut. Richtig würde die URL z. B. file:/pfad oder file://host/pfad lauten, wobei Pfadelemente mit einem forward slash voneinander getrennt werden und host leer sein kann. file:/R:/nwFotos/bild.png bzw. file:///R:/nwFotos/bild.png wären also gültige file-URIs.
Da der Pfad in Unix-Systemen schon mit einem "froward slash" beginnt, reicht "file://" (mit 2 forward-Slashes)
Für Windows brauchts drei "froward slashes", also "file:///" -> Das hat das Problem gelösst!!! 😄😄😄
In Unix Systemen beginnt ein echter Pfad immer mit einem froward slash, in Windows immer mit einem Laufwerkbuchstaben!
Ergo muss (java file://) in Windows immer drei froward slashes haben in Unix (Linux, Mac) nur zwei plus Pfad.
Das habe ich glaub ich jetzt Begriffen.
Vielen Dank.