2010-01-27 29 views
7

Có cách nào để xác định theo chương trình nếu một thư mục cụ thể thực sự được gắn từ xa không? Điều này có thể được thực hiện với Java, và nếu không nó có thể được thực hiện với mã C bản địa trên JNI?Làm thế nào để biết một thư mục được gắn từ xa bằng cách sử dụng Java

Vì đây là Java, nó có thể chạy dưới Linux hoặc Windows hoặc Mac nên giải pháp thích hợp cần giải quyết tất cả các nền tảng này. (Một lần nữa nếu nhiều giải pháp riêng biệt của nó với C trên JNI thats ok). Và có thể có những trường hợp khác nhau như với NFS hay samba hay bất cứ thứ gì khác.

Cảm ơn.

Trả lời

2

cho Linux và có thể là Macintosh, bạn có thể sử dụng thư viện hệ thống thông qua JNI. Cuộc gọi hệ thống có liên quan là getmntent, described here.

Có một lĩnh vực trong mntent bạn có thể sử dụng để kiểm tra xem nếu mount point là từ thiết bị hoặc một máy chủ, mnt_fsname, trong một lĩnh vực tương tự bạn có thể nhận dạng hệ thống tập tin, `mnt_type"

0

Đối với Linux, bạn có thể phân tích cú pháp/etc/mtab để tìm loại hệ thống tập tin (nfs, smb, v.v.) và khớp với loại hệ thống tập tin mạng đã biết trong chương trình của bạn

EDIT: cột 2 là thứ bạn muốn trong/etc/mtab

0

Tôi cũng cần điều đó và có thể sẽ thực hiện nó bằng lệnh sau:

df -k

Hoạt động trong Linux, Mac OS và Solaris.

Có thể đây là thứ khác sẽ được thêm vào JDK 7 vì chúng cũng sẽ hỗ trợ các liên kết tượng trưng.

Các vấn đề liên quan