2010-01-27 5 views
7

Gibt es eine Möglichkeit, programmatisch zu bestimmen, ob ein bestimmtes Verzeichnis tatsächlich remote bereitgestellt wird? Kann dies mit Java gemacht werden, und wenn nicht, kann es mit nativem C-Code über JNI gemacht werden?Wie kann festgestellt werden, ob ein Verzeichnis mit Java remote gemountet wird?

Da dies Java ist, könnte es unter Linux oder Windows oder Mac laufen, also muss eine angemessene Lösung all diese Plattformen ansprechen. (Auch wenn es mehrere getrennte Lösungen mit C über JNI gibt, ist das in Ordnung). Und es kann verschiedene Fälle geben wie mit NFS oder Samba oder irgendetwas anderem.

Danke.

Antwort

2

für Linux und möglicherweise Macintosh können Sie Systembibliothek über JNI verwenden. Der entsprechende Systemaufruf lautet getmntent, described here.

Es gibt ein Feld in mntent ist Sie überprüfen können, ob Mount-Punkt von Gerät oder einem Server ist, mnt_fsname, in einem ähnlichen Bereich Sie Dateisystem-Typ erhalten können, `mnt_type“

0

Für Linux, Sie kann parsen/etc/mtab die Dateisystem-Typ (nfs, smb, etc.) und passen sie vor bekannten Netzwerkdateisystem-Typen in Ihrem Programm zu finden

EDIT:. Spalte 2 ist das, was Sie in/etc wollen/mtab

0

Ich brauche das auch und könnte am Ende implementieren es mit diesem Befehl:

df -k

Das funktioniert unter Linux, Mac OS und Solaris.

Vielleicht ist dies etwas anderes, das zu JDK 7 hinzugefügt wird, da sie auch Symlinks unterstützen werden.