Java 列出文件系统的根目录?

Java 列出文件系统的根目录?,java,file,directory,Java,File,Directory,我找到了一个链接 举个例子: Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories(); for (Path name: dirs) { System.err.println(name); } 如果我想用上面的代码列出C://中的文件,你能帮我弄清楚我需要做什么吗?用纯Java NIO: public static void main(final String[]

我找到了一个链接 举个例子:

    Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories();
    for (Path name: dirs) {
        System.err.println(name);
    }
如果我想用上面的代码列出C://中的文件,你能帮我弄清楚我需要做什么吗?

用纯Java NIO:

public static void main(final String[] args)
{
    // This will give u all Root Directories. Like: C:, D:, ...
    final Iterable<Path> rootDirs = FileSystems.getDefault().getRootDirectories();

    for (final Path rootDir : rootDirs)
    {
        if (rootDir.startsWith("C:") == false)
            continue;

        // This will loop through every of this root directories
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(rootDir))
        {
            for (final Path file : stream)
            {
                System.out.println(file.getFileName());
            }
        }
        catch (IOException | DirectoryIteratorException x)
        {
            System.err.println(x);
        }
    }

}

我宁愿只使用File类

    File[] dirs = File.listRoots();
    for (File name: dirs) {
        if (name.toString().equals("C:\\")){
            String[] cDirs = name.list();
            for (String cDir: cDirs) {
                System.out.println(cDir);
            }
        }
    }
这段代码也适用于旧的java版本,即Java1.7;这是使用文件系统的最低版本。

试试这个

 Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories();
 for (Path name: dirs) {
     System.err.println(name);
    if("C:\\".equalsIgnoreCase(name.toString())){
        File dir = new File(name.toString());
        for(File file : dir.listFiles())
            System.out.println(file.getName());

    }
  }
 }

启动java1.7的根目录可以使用

Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories();

运行此代码时会发生什么?它将打印所有根文件夹中的所有文件,如C:\、d:\、e:\。请检查一下c驱动,因为问题是这样的。是的,这就是你问的,或者?我不是发问者,他/她问的是你能帮我如何使用它吗?如果我想用上面的代码列出一个C://文件,我相信您的代码不会编译。rootDir不是字符串对象,因此无法使用c:==falseNIO Magic:,执行此操作,请参阅:您确实不需要创建文件对象进行比较。只需执行以下操作:name.toString.equalsC:\\