我找到了一个链接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://”列出文件,你能帮我弄清楚我需要做什么吗?
答案 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
的最低版本。