Das ist ein Ausschnitt aus meinem Testcode:
1 | |
2 | |
3 | |
4 | |
und diese Fehlermeldung erhalte ich:
1 | |
2 | |
Fakt ist, das File und die Freigabe "FM" existieren definitiv auf dem Server, wo ist das sch... Problem? Danke für Tips.
|
Anzeige
|
Java-Problem mit Pfaden.Das ist ein Ausschnitt aus meinem Testcode:
und diese Fehlermeldung erhalte ich:
Fakt ist, das File und die Freigabe "FM" existieren definitiv auf dem Server, wo ist das sch... Problem? Danke für Tips. Hmmm... vielleicht der fehlende doppelte Slash am Anfang? Thilo L. schrieb: > Hmmm... vielleicht der fehlende doppelte Slash am Anfang? Ja, das vermute ich auch, aber wohin verschwindet der? Im Original (aus einer DB) steht ja "||", was dann ausgetauscht werden soll und in der Kotrollausgabe (über der Fehlermeldung) ist das ja auch so. Ich habe schon mehrere "|||||" bzw "/////" versucht, werden immer auf eines reduziert. Führst du den Java-Code unter Windows oder was Unix-artigem aus? Weil die UNC-Schreibweise '\\<server>\<freigabe>\<pfad&datei>' erfordert Unterstützung durch das OS, java bringt da keinen eigenen On-Demand-SMB-Client mit.
Gast
#6582872
Wenn der Directory seperator / ist, ist dass dann ein Linux oder Unix system? Bei denen hat // a Anfang nämlich keine spezielle Bedeutung. // und /./ und / werden da alle gleich behandelt, das bleibt ein lokaler Pfad, da wird nicht versucht, über smb irgendwo darauf zuzugreifen. Du kannst das auch im Terminal nachprüfen, mit "ls //192.168.10.5/FM/670.zip" wird versuchen, lokal eine Datei /192.168.10.5/FM/670.zip zu finden. Manche Dateimanager & Gnome Anwendungen haben eventuell noch extra logik für URLs und derartiges eingebaut, meistens indirekt, wenn diese gio nutzen, und man GVfs installiert hat, lädt gio dann gvfs, und gvfs Mounted das zeug als Fuse Dateisystem in ~/.gvfs/, /run/user/$UID/gvfs oder $XDG_RUNTIME_DIR/gvfs, und über den lokalen Pfad können dann auch nicht-gio Anwendungen die Datei öffnen. Ich finde das Design des ganze gvfs zeugs ja ziemlich bescheuert. Die hätten lieber ein FS machen sollen, dass man einfach in vfs oder so mountet, so dass man dann sowas wie /vfs/smb://192.168.10.5/FM/670.zip hätte machen können, und zwar von allen Anwendungen aus, nicht nur einigen Gnome Dingern, aber nein, sie mussten das Rad neu erfinden, mounten anders lösen, und die Pfade hin und her Konvertieren... Konkret sitze ich an einem Mac und will aus einer Java-App auf einen Windows-Server zugreifen. Das würde ich gerne, ohne dass ich extra ein Volume lokal mappen muss. Wenn ich das mache, dann klappt der Zugriff über
Dann ist das wohl so :-( Ich dachte bisher immer, UNC-Pfade sind System-unabhängig. Fehlt da das Protokoll vor der Freigabe?
https://support.apple.com/de-de/guide/mac-help/mchlp1654/mac Mario M. schrieb: > Fehlt da das Protokoll vor der Freigabe?String fpath = > "smb:||192.168.10.5|FM|670.zip"; > > https://support.apple.com/de-de/guide/mac-help/mchlp1654/mac Das kenne ich natürlich vom Einrichten eines gemappten Volumes unter "Gehe zu Server ..." im Finder. In dem Falle hier habe ich es gerade probiert, macht keinen Unterschied. In der AUsgabe der Fehlermeldung wird das weggelöscht und zusätzlich werden alle doppelten Slashes oder Backslashes zu einfachen, egal wie viele im Quellstring drin sind.
Gast
#6582971
> Ich dachte bisher immer, UNC-Pfade sind System-unabhängig.
Und der Pabst ist katholisch.
Versuchs mit einem HTTP-Server.
Das sollte die Aussicht auf Erfolg deutlich steigern.
oerks schrieb: > Versuchs mit einem HTTP-Server. Warum sollte "java.io.File" einen HTTP-Server ansprechen können? Und dass UNC nur unter Windows klappt, steht sogar in der Javadoc...
Gast
#6583026
> "java.io.File"
Das war nur ein freundlicher Rat.
Wenn er mit UNC weiter basteln will, nur zu.
Ich mappe das halt vorher.
Da ist UNC dann aussen vor.
Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|