public class GetFileName
{
public static List<String> getAllFileName(String path,List<String> resultFileName){
File file = new File(path);
File[] files = file.listFiles();
if(files == null) return resultFileName;// 判断目录下是不是空的
for (File f : files) {
if(f.isDirectory()){// 判断是否文件夹
resultFileName.add(f.getPath());
getAllFileName(f.getAbsolutePath(),resultFileName);// 调用自身,查找子目录
}else
resultFileName.add(f.getPath());
}
return resultFileName;
}
public static void main(String[] args)
{
List<String> resultFileName = new ArrayList<>();
List<String> fileNames = getAllFileName("D:\\work",resultFileName);
for (String name:fileNames){
System.out.println(name);
}
}
}
可以去掉啊
不行的吧,我试过了结果变成了只输出一级文件名。之前是输出所有文件(包括各个级数文件夹中的所有文件)
@punk宇: 嗯 刚刚没看仔细 不能去掉
@Summer、: 为啥呢,感觉这个入参没啥作用啊,我在方法体里定义就不行了
@punk宇: 你定义在里面 每次一new前面保存的路径就没了
@Summer、: 嗯 谢了