Как определить, смонтирован ли каталог с использованием Java - PullRequest
7 голосов
/ 28 января 2010

Есть ли способ программно определить, действительно ли конкретный каталог удаленно смонтирован? Можно ли это сделать с помощью Java, а если нет, то с помощью нативного кода C поверх JNI?

Поскольку это Java, она может работать под Linux, Windows или Mac, поэтому для всех этих платформ необходимо найти правильное решение. (Опять же, если его несколько отдельных решений с C над JNI, это нормально). И могут быть разные случаи, например, с NFS, samba или чем-то еще.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 28 января 2010

для Linux и, возможно, Macintosh, вы можете использовать системную библиотеку через JNI. Соответствующий системный вызов - getmntent, , описанный здесь .

В mntent есть поле, которое вы можете использовать, чтобы проверить, находится ли точка монтирования с устройства или сервера, mnt_fsname, в аналогичном поле вы можете получить тип файловой системы, `mnt_type"

0 голосов
/ 06 апреля 2010

Мне это тоже нужно, и в конечном итоге он может быть реализован с помощью этой команды:

df -k

Это работает под Linux, Mac OS и Solaris.

Может быть, это что-то еще, что будет добавлено в JDK 7, поскольку они также будут поддерживать символические ссылки.

0 голосов
/ 28 января 2010

Для Linux вы можете проанализировать / etc / mtab, чтобы найти тип файловой системы (nfs, smb и т. Д.) И сопоставить его с известными типами сетевых файловых систем в вашей программе.

РЕДАКТИРОВАТЬ: столбец 2 - это то, что вы хотите в / etc / mtab

...