列出文件系统的根目录?

时间:2013-08-09 15:37:05

标签: java file directory

我找到了一个链接http://docs.oracle.com/javase/tutorial/essential/io/dirs.html 举个例子:

    Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories();
    for (Path name: dirs) {
        System.err.println(name);
    }

如果我想使用上面的代码从“C://”列出文件,你能帮我弄清楚我需要做什么吗?

4 个答案:

答案 0 :(得分:0)

使用普通的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);
        }
    }

}

答案 1 :(得分:0)

试试这个

 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());

    }
  }
 }

答案 2 :(得分:0)

可以使用

列出启动java1.7根目录
Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories();

答案 3 :(得分:-1)

我更喜欢使用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 1.7的旧Java版本;这是使用FileSystems的最低版本。