在Java中,如何迭代某个目录的文件?
可能重复:在Java中,如何迭代某个目录的文件?,java,file,directory,Java,File,Directory,可能重复: 我想使用Java处理特定目录中的每个文件 最简单(也是最常见)的方法是什么?如果您在myDirectoryPath中有目录名 import java.io.File; ... File dir = new File(myDirectoryPath); File[] directoryListing = dir.listFiles(); if (directoryListing != null) { for (File child : directoryListi
我想使用Java处理特定目录中的每个文件
最简单(也是最常见)的方法是什么?如果您在
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.
}
下面是一个示例,列出了我桌面上的所有文件。您应该将path变量更改为path 您不应该使用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]);
}
}
}
publicstaticvoidmain(字符串[]args){
文件路径=新文件(“c:/documents and settings/Zachary/desktop”);
File[]files=path.listFiles();
对于(int i=0;i
使用或者
如果您想在迭代之前过滤列表(或任何更复杂的用例),请使用apache commons FileUtils 我想有很多方法可以满足你的需求。这是我使用的一种方法。使用
commons.io
库,您可以迭代目录中的文件。您必须使用FileUtils.iterateFiles
方法,并且可以处理每个文件
您可以在此处找到相关信息:
下面是一个例子:
Iterator it = FileUtils.iterateFiles(new File("C:/"), null, false);
while(it.hasNext()){
System.out.println(((File) it.next()).getName());
}
如果要筛选,可以更改
null
,并放置扩展名列表。示例:{.xml“,.java”}
重复的:这是重复的,但不是关于深度遍历的问题(“包括所有子目录中的文件)。请参阅。如果您只想进行筛选,则重写listFiles
以获取文件筛选器或文件名筛选器,因此无需使用apache commons。尽管它是一个很好的库。@john assymptoth,如果没有此库和java实现的util,如果库中包含在最新版本(2.6)的commons.io
中,您的调用看起来像FileUtils.iterateFiles(新文件(“C:/”,null,null)
(忽略子目录)或例如FileUtils.iterateFiles(新文件(“C:/”,新后缀文件过滤器(.java”),null)
在文件扩展名上应用筛选器。Javado在listFiles()中说:“结果中不包括表示目录本身和目录父目录的路径名。”仅供参考,如果需要当前文件夹,可以使用`new file(“.”;'