我的共享文件夹看起来像//shared/content,我想知道文件夹的总空间和可用空间等详细信息。我怎样才能在Java中做到这一点?
我尝试过OSHI库,但它提供的文件存储和磁盘没有这个共享文件夹。对于 Linux,它返回 NFS 文件存储,但我无法弄清楚如何找到共享文件夹并获取其空间统计信息。
您可以通过
FileStore
检索有关文件系统的信息。这应该适用于使用 UNC 路径或驱动器盘符(如果您已映射 UNC 路径)的 Windows 共享:
void diskInfo(Path p) throws IOException {
FileStore fs = Files.getFileStore(p);
System.out.format("%s %d free of %d%n", p.toAbsolutePath(), fs.getUsableSpace(), fs.getTotalSpace());
}
Windows 上的一些示例,:
diskInfo(Path.of("C:/"));
diskInfo(Path.of("C:\\")); // Same as previous line
diskInfo(Path.of("//shared/content"));
diskInfo(Path.of("\\\\shared\\content")); // Same as previous line
GNU/Linux 上的一些示例:
diskInfo(Path.of("/"));
diskInfo(Path.of("/some/mount/point"));