如何用 Java 代码列出一个目录下所有的文件?

如果只要求列出当前文件夹下的文件,代码如下所示:

import java.io.File;

class Test12 {

public static void main(String[] args) {

File f = new File("/Users/Hao/Downloads");

for(File temp : f.listFiles()) {

if(temp.isFile()) {

System.out.println(temp.getName());

}

}

}

}

如果需要对文件夹继续展开,代码如下所示:

import java.io.File;

class Test12 {

public static void main(String[] args) {

showDirectory(new File("/Users/Hao/Downloads"));

}

public static void showDirectory(File f) {

_walkDirectory(f, 0);

}

private static void _walkDirectory(File f, int level) {

if(f.isDirectory()) {

for(File temp : f.listFiles()) {

_walkDirectory(temp, level + 1);

}

}

else {

for(int i = 0; i < level - 1; i++) {

System.out.print(" ");

}

System.out.println(f.getName());

}

}

}

Java 7 中可以使用 NIO.2 的 API 来做同样的事情,代码如下所示:

class ShowFileTest {

public static void main(String[] args) throws IOException {

Path initPath = Paths.get("/Users/Hao/Downloads");

Files.walkFileTree(initPath, new SimpleFileVisitor<Path>() {

@Override

public FileVisitResult visitFile(Path file, BasicFileAttributes

attrs)

throws IOException {

System.out.println(file.getFileName().toString());

return FileVisitResult.CONTINUE;

}

});

}

}

原文地址:https://www.cnblogs.com/programb/p/13021404.html