2010-01-27 13 views
7

¿Hay alguna forma de determinar programáticamente si un directorio en particular está montado de forma remota? ¿Se puede hacer esto con Java, y si no se puede hacer con código C nativo sobre JNI?Cómo saber si un directorio se monta de forma remota utilizando Java

Dado que se trata de Java, podría ejecutarse bajo Linux o Windows o Mac, por lo que una solución adecuada debe abordar todas estas plataformas. (De nuevo, si sus múltiples soluciones separadas con C sobre JNI están bien). Y puede haber diferentes casos como con NFS o samba o cualquier otra cosa.

Gracias.

Respuesta

2

para Linux, y posiblemente Macintosh, puede usar la biblioteca del sistema a través de JNI. La llamada al sistema relevante es getmntent, described here.

Hay un campo en mntent puede utilizar para comprobar para ver si el punto de montaje es de dispositivo o un servidor, mnt_fsname, en un campo similar se puede obtener el tipo de sistema de archivos, `mnt_type"

0

Para Linux, puede analizar/etc/mtab para encontrar el tipo de sistema de archivos (NFS, SMB, etc.) y compararlo con los tipos de sistemas de archivos de red conocidos en su programa

EDIT:. la columna 2 es lo que quiere en/etc/mtab

0

Necesito eso también y podría terminar implementándolo usando este comando:

df -k

Eso funciona en Linux, Mac OS y Solaris.

Quizás esto sea algo más que se agregará a JDK 7 ya que también admitirán enlaces simbólicos.

Cuestiones relacionadas