Java 中是否有类似于
statfs
的东西来确定给定文件的文件系统类型?更具体地说,我想确定用户提供的文件是否位于共享文件系统或本地文件系统上。我将使用此信息来确定应用程序是否正在分布式应用程序的本地文件系统上打开多个同名文件,或者打开一个共享文件。
我想如果我可以得到像“NFS”,“Lustre”,“EXT3”等作为字符串或枚举的东西,那么我可以将映射编程为共享/不共享。我们假设该文件存在并且可读。
据我所知,没有 - Java 不提供对您正在查找的信息的访问。
我认为你唯一真正的选择是编写一个共享库,并使用 JNI 或 JNA 来访问它。
以下是如何使用
FileStore
String format = getFormat(Path.of(file.getPath()));
String getFormat (Path path) {
return Files.getFileStore(path).type();
}