# freigabe - unterschiedliche pfade unter linux und windows



## hegro (31. Aug 2006)

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 (31. Aug 2006)

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 (31. Aug 2006)

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.


----------



## thE_29 (31. Aug 2006)

Naja, und wo ist jetzt ein Problem?!


----------



## Guest (1. Sep 2006)

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 (1. Sep 2006)

Ich verstehe dein Problem noch immer nicht...

Speicherst du diese Pfade irgendwo ab oder was?!


----------



## hegro (1. Sep 2006)

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 (1. Sep 2006)

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).


----------

