如何用 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("\t");

}

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;

}

});

}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM