Joh*_*oth 101 java directory file
可能重复:
迭代java中的目录的最佳方法?
我想使用Java处理某个目录中的每个文件.
这样做最简单(也是最常见)的方法是什么?
Mik*_*uel 171
如果您有目录名称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.
}
Run Code Online (Sandbox Code Playgroud)
jom*_*ora 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());
}
Run Code Online (Sandbox Code Playgroud)
null
如果您想要过滤,可以更改并列出扩展列表.例:{".xml",".java"}
这是一个列出我桌面上所有文件的示例.您应该将路径变量更改为您的路径.
您应该放置自己的代码来操作文件,而不是使用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]);
}
}
}
Run Code Online (Sandbox Code Playgroud)