【发布时间】:2014-10-28 17:25:23
【问题描述】:
是否可以从包含多种文件类型(如 cvs、txt、doc、xml、html 等)的目录中读取单一类型的文件(如 CSV 或 txt)
我的问题是我必须提供 mainDirectory 的路径作为输入,它内部还有多层子目录。当我进一步深入研究时,我特别需要读取和处理这些目录中的 CSV 文件。
我已经完成了使用递归的多层文件夹遍历,我有 mainDirectory 中文件的名称和总数。我也完成了读取和 CSV 文件的逻辑。我需要做的就是仅获取 CSV 文件的路径并处理它们。
我正在使用下面提到的代码来遍历多个文件夹并获取名称:-
package org.ashu.input;
import java.io.File;
/**
*
* @author ashutosh
*/
public class MultiDir {
private int fileCount;
public void readFile(File f){
System.out.println(f.getPath());
fileCount++;
}
public void readDir(File f){
File subdir[] = f.listFiles();
for(File f_arr : subdir){
if(f_arr.isFile()){
this.readFile(f_arr);
}
if(f_arr.isDirectory()){
this.readDir(f_arr);
}
}
}
public static void main(String[] args){
MultiDir md = new MultiDir();
File mainDir = new File("/Users/ashutosh/Downloads/main_directory");
md.readDir(mainDir);
System.out.println(md.fileCount);//all file count = 1576, need to specifically get CSV
}
}
请给点建议。
【问题讨论】: