答案 0 :(得分:162)
如果目录名称在myDirectoryPath
,
import java.io.File;
...
File dir = new File(myDirectoryPath);
File[] directoryListing = dir.listFiles();
if (directoryListing != null) {
for (File child : directoryListing) {
// Do something with child
}
} else {
// Handle the case where dir is not really a directory.
// Checking dir.isDirectory() above would not be sufficient
// to avoid race conditions with another process that deletes
// directories.
}
答案 1 :(得分:32)
我想有很多方法可以制作你想要的东西。这是我使用的一种方式。使用commons.io
库,您可以遍历目录中的文件。您必须使用FileUtils.iterateFiles
方法,并且可以处理每个文件。
您可以在此处找到相关信息:http://commons.apache.org/proper/commons-io/download_io.cgi
以下是一个例子:
Iterator it = FileUtils.iterateFiles(new File("C:/"), null, false);
while(it.hasNext()){
System.out.println(((File) it.next()).getName());
}
如果您想要过滤,可以更改null
并列出一些扩展名。示例:{".xml",".java"}
答案 2 :(得分:9)
这是一个列出桌面上所有文件的示例。你应该将路径变量改为你的路径。
您应该放置自己的代码来操作文件,而不是使用System.out.println打印文件的名称。
public static void main(String[] args) {
File path = new File("c:/documents and settings/Zachary/desktop");
File [] files = path.listFiles();
for (int i = 0; i < files.length; i++){
if (files[i].isFile()){ //this line weeds out other directories/folders
System.out.println(files[i]);
}
}
}
答案 3 :(得分:4)
使用java.io.File.listFiles
或者
如果要在迭代之前过滤列表(或任何更复杂的用例),请使用apache-commons FileUtils。 FileUtils.listFiles