两种方法:
法一:返回一个ArrayList<File>
private static ArrayList<File> fileList = new ArrayList<File>();
//获取某个目录下的所有文件,返回一个ArrayList<File>
public static ArrayList<File> getAllFile(String dir) {
File file = new File(dir);
if(file.exists() && file.isDirectory()) {
File[] files = file.listFiles();
for(File f:files) {
if(f.isDirectory()) {
getAllFile(f.getPath());
}else {
fileList.add(f);
}
}
}
return fileList;
}
法二:返回List<String>,List中存放的是file路径
public static List<String> getFileList(String path){
if(path == null || path.trim().length() == 0){
System.out.println("输入路径不存在!");
return null;
}
List<String> result = new ArrayList<String>();
File file = new File(path);
if(file.isDirectory()){
for (File subFile : file.listFiles()) {
result.addAll(getFileList(subFile.toString()));
}
}else{
result.add(file.toString());
}
return result;
}