2010-01-27 8 views
7

Existe-t-il un moyen de déterminer par programme si un répertoire particulier est réellement monté à distance? Cela peut-il être fait avec Java, et si non, peut-il être fait avec du code C natif sur JNI? Comme il s'agit de Java, il pourrait fonctionner sous Linux ou Windows ou Mac, donc une solution appropriée doit traiter toutes ces plates-formes. (Encore une fois si ses multiples solutions séparées avec C sur JNI c'est ok). Et il peut y avoir différents cas comme avec NFS ou samba ou quoi que ce soit d'autre.Comment savoir si un répertoire est monté à distance à l'aide de Java

Merci. Pour Linux, et peut-être Macintosh, vous pouvez utiliser la bibliothèque système via JNI pour

Répondre

2

L'appel système correspondant est getmntent, described here.

Il y a un champ dans mntent vous pouvez utiliser pour vérifier si le point de montage est de l'appareil ou d'un serveur, mnt_fsname, dans un domaine similaire, vous pouvez obtenir le type de système de fichiers, `mnt_type »

0

Pour Linux, vous peut analyser/etc/mtab pour trouver le type de système de fichiers (nfs, smb, etc.) et correspondre contre les types de système de fichiers de réseau connu dans votre programme

EDIT:. colonne 2 est ce que vous voulez dans/etc/mtab

0

J'ai aussi besoin de cela et je pourrais finir par l'implémenter en utilisant cette commande:

df -k

Cela fonctionne sous Linux, Mac OS et Solaris.

Peut-être que c'est quelque chose d'autre qui sera ajouté à JDK 7, car ils vont également prendre en charge les liens symboliques.