需求说明:
将服务器的某个文件夹下的照片移动到指定文件夹中.照片被包含在多个文件里面,需要一层一层遍历,
但文件夹的层数并非都一样.并且最后一层有个excel表,将里面的某个字段作为新的文件夹名.
解决办法:
由于层数并非都一样,所有采用递归的方式进行一个遍历,这样能保证遍历到最后一层.
public void readAllDic(String filePath) throws Exception {
File f = null;
f = new File(filePath);
File[] files = f.listFiles(); // 得到f文件夹下面的所有文件。
List<File> list = new ArrayList<File>();
for (File file : files) {
//System.out.println(file.getAbsolutePath());
//System.out.println(file.isDirectory());
if(file.getCanonicalFile().isDirectory()) {
//如何当前路径是文件夹,则循环读取这个文件夹下的所有文件
readAllDic(file.getAbsolutePath());
} else {
//输出非文件夹的绝对路径
System.out.println(file.getAbsolutePath());
list.add(file);
}
}
for (File file : list) {
String filePathNameString = file.getAbsoluteFile().toString();
String suffix = filePathNameString.substring(filePathNameString.lastIndexOf(".") + 1);
if (suffix.equals("xls")) {
getAllByExcel(file.getAbsolutePath(),request);
}
}
}