0

file.listRoots()适用于内部文件驱动器信息,但无法获取 USB 和便携式文件信息。这是我的代码:

File[] paths; 
try {
    // returns pathnames for files and directory
    paths = File.listRoots();
    for (File path : paths) // for each pathname in pathname array
        System.out.println(path); // prints file and directory paths
} catch(Exception e) { // if any error occurs
    e.printStackTrace();
}

我不明白为什么我的便携式 USB 信息无法获取?

4

1 回答 1

2

如果您的 USB 驱动器已连接并且可以访问,您可以检查 NIO 代码是否显示卷如下:

for (Path root : FileSystems.getDefault().getRootDirectories()) {
    FileStore fs = Files.getFileStore(root);
    System.out.format("FileStore %s\tName: '%s'\tType: %s%n", root, fs.name(), fs.type());
    System.out.println();
}

在上面的循环中,您还可以检查其他文件系统属性,例如可移动存储标志:

String[] attrs = new String[]{"volume:isRemovable"};

for (String s : attrs) {
    System.out.format("\t%s=%s", s, fs.getAttribute(s));
}
于 2020-09-30T08:50:53.993 回答