一个常用file工具类,用来扫描给定目录下的所有文件,返回对应文件的全路径。
public static ArrayList<Object> scanFilesWithSubPackage(String path) {
ArrayList<Object> scanFiles = new ArrayList<Object>();
LinkedList<File> queueFiles = new LinkedList<File>();
File directory = new File(path);
if (!directory.isDirectory()) {
return null;
} else {
//首先将第一层目录扫描一遍
File[] files = directory.listFiles();
//遍历扫出的文件数组,如果是文件夹,将其放入到linkedList中稍后处理
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
queueFiles.add(files[i]);
} else {
//暂时将文件名放入scanFiles中
scanFiles.add(files[i].getAbsolutePath());
}
}
//如果linkedList非空遍历linkedList
while (!queueFiles.isEmpty()) {
//移出linkedList中的第一个
File headDirectory = queueFiles.removeFirst();
File[] currentFiles = headDirectory.listFiles();
for (int j = 0; j < currentFiles.length; j++) {
if (currentFiles[j].isDirectory()) {
//如果仍然是文件夹,将其放入linkedList中
queueFiles.add(currentFiles[j]);
} else {
scanFiles.add(currentFiles[j].getAbsolutePath());
}
}
}
}
return scanFiles;
}
返回结果示例: