如何用Java获取Windows中共享文件夹的磁盘使用统计信息?

问题描述 投票:0回答:1

我的共享文件夹看起来像//shared/content,我想知道文件夹的总空间和可用空间等详细信息。我怎样才能在Java中做到这一点?

我尝试过OSHI库,但它提供的文件存储和磁盘没有这个共享文件夹。对于 Linux,它返回 NFS 文件存储,但我无法弄清楚如何找到共享文件夹并获取其空间统计信息。

java windows filesystems diskspace oshi
1个回答
0
投票

您可以通过

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"));
© www.soinside.com 2019 - 2024. All rights reserved.