[英]Reading all files in a directory including its sub directories
This is how I set the path: 这是我设置路径的方式:
dPath = dPath.replace("\\", "/");
String iLen;
String FileName;
File iFolder = new File(dPath);
File[] listOfFiles = iFolder.listFiles();
When searching: 搜索时:
for (int i = 0; i < listOfFiles.length; i++)
{
if (listOfFiles[i].isFile())
{
FileName = listOfFiles[i].getName();
for(String s : iEndsWith)
{
if(FileName.toLowerCase().endsWith(s))
{
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy h:mm aaa");
iLen = ReadableBytes(listOfFiles[i].length());
Object rowData[] = { FileName, listOfFiles[i].getAbsoluteFile(), sdf.format(listOfFiles[i].lastModified()), iLen };
iTableModel.addRow(rowData);
iTotalFiles ++;
}
}
}
}
That will only look for files in the given directory path, but not it's sub directories. 那只会在给定目录路径中查找文件,而不是子目录。 How can I change that?
我该如何改变?
If you're on Java 7, you can use FileVisitor
: http://docs.oracle.com/javase/tutorial/essential/io/walk.html 如果您使用的是Java 7,则可以使用
FileVisitor
: http : //docs.oracle.com/javase/tutorial/essential/io/walk.html
If not, just use a simple recursive version of your function. 如果没有,只需使用函数的简单递归版本即可。
您可以使用Apache Commons中的DirectoryWalker遍历目录层次结构。
Pass folder as Initial File which is to be searched 将文件夹作为要搜索的初始文件传递
File foldr = new File("c:/javaFolder");
public void addFilesToList(File folder) {
File[] listofFiles = folder.listFiles();
if (listofFiles != null) {
for (File file : listofFiles) {
if (file.isFile()) {
} else
addFilesToList(file);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.