您的位置:首页 > 编程语言 > Java开发

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

2017-11-01 10:11 681 查看
如果只要求列出当前文件夹下的文件,代码如下所示:package chimomo.learning.java.file;

import java.io.File;

/**
* @author Chimomo
*/
public class ListFile1 {

public static void main(String[] args) {
File f = new File("/Users/XXX/Downloads");
for (File t : f.listFiles()) {
if (t.isFile()) {
System.out.println(t.getName());
}
}
}

}如果需要对文件夹继续展开,代码如下所示:
package chimomo.learning.java.file;

import java.io.File;

/**
* @author Chimomo
*/
public class ListFile2 {

public static void main(String[] args) {
listFiles(new File("/Users/XXX/Downloads"));
}

public static void listFiles(File f) {
walkDir(f, 0);
}

private static void walkDir(File f, int level) {
if (f.isDirectory()) {
for (File t : f.listFiles()) {
walkDir(t, level + 1);
}
} else {
for (int i = 0; i < level - 1; i++) {
System.out.print("\t");
}
System.out.println(f.getName());
}
}

}
在Java 7中可以使用NIO.2的API来做同样的事情,代码如下所示:
package chimomo.learning.java.file;

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.*;

/**
* @author Chimomo
*/
public class ListFile3 {

public static void main(String[] args) throws IOException {
Path initPath = Paths.get("/Users/XXX/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;
}

});
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java
相关文章推荐