freigabe - unterschiedliche pfade unter linux und windows

Status
Nicht offen für weitere Antworten.

hegro

Mitglied
hallo zusammen,
ich habe ein kleines problem bei meinem projekt. es geht
um folgendes:

mein programm ist eine anwendenung die sowohl
auf linux und auf windows rechnern läuft. grob gesagt geht
es in meiner anwendung darum, datensätze aus einer MySql
datenbank zu lesen, datensätze hinzufügen, bearbeiten usw.
das funktioniert auch wunderbar.
zu jedem datensatz muss der benutzer einen pfad einer spezifische
datei angegeben(über JFileChooser), die in einer freigabe auf
einem windows server liegt. nun unterscheiden sich ja die pfadangaben
unter linux und windows. unter linux werden die freigaben mit nfs einfach
ins bestehende dateisystem gemountet (fängt als irgendwie mit '/' an).
unter windows werdend die freigaben als netzlaufwerk eingebunden und
beginnen als mit einem buchstaben (z.B. Y:).

in meinem programm soll es eine checkfkt. geben die überprüft, ob die in
den datensätzen angegebenen dateien noch existieren. führe ich die checkfkt
unter linux aus, würde mein programm alle dateien als nicht existent
anzeigen die einen windowspfad haben. unter windows, würde alle linux pfade
angezeigt.

wie löse ich dass am besten.
 

jagdfalke

Bekanntes Mitglied
Naja du wirst eine Klasse für Linux schreiben müssen und eine für Windows.
Aber mal was anderes, was mich an der Sache auch noch interessiert: Wie greifst du auf Samba- bzw. Windowsfreigaben zu mit Java?

mfg
jagdfalke
 

hegro

Mitglied
beim start der linuxrechner werden die windowsfreigaben mit nfs einfach ins dateisystem gemountet und dann kann man mit java mit der Klasse File auf die verzeichnisse und datei zugreifen.

unter windows werden die freigaben beim start des rechners als netzlaufwerke eingebunden und auch hier kann man dann mit java und der klasse file auf alles zugreifen.
 
G

Guest

Gast
ein beispiel:

rechner A (linux), gibt einen datensatz ein und selektiert dabei mit JFileChooser eine datei auf dem server, dessen Freigabe in das dateisystem von rechner A gemountet ist. sagen wir mal diese datei hätte den pfad /mnt/share/docs/readme.txt

rechner A (windows), gibt einen datensatz ein und selektiert dabei mit JFileChooser eine datei auf dem server, dessen Freigabe als netzlaufwerk auf rechner B eingebunden ist. sagen wir mal diese datei hätte den pfad Y:\share\docs\readme.txt

wenn ich jetzt von einem linux rechner den datei check über alle datensätze laufen lassen würde, könnte der linux rechner nichts mit dem pfad "Y:\share\docs\readme.txt" anfangen.
genauso könnte der windowsrechner beim check nichts mit dem pfad "/mnt/share/docs/readme.txt"

das ist jetzt mein problem!!!
 

thE_29

Top Contributor
Ich verstehe dein Problem noch immer nicht...

Speicherst du diese Pfade irgendwo ab oder was?!
 

hegro

Mitglied
ja ich speicher die datensätze ein einer mysql datenbank ab!!! das gibts dann ne tabelle die z.b. folgende spalten hat:

ID, Name, Pfad, Bemerkung

die checkfkt. soll überprüfen, ob der dateipfad in der spalte "pfad" noch existiert.
 

AlArenal

Top Contributor
Dann musst du den Pfad eben splitten in einen Pfad, der lokal bis zur Wurzel der Freigabe geht und einen relativen Pfad innerhalb der Freigabe (der ist ja unabhängig von lokalen Gegebenheiten).
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben