问题描述
小弟遇到一个问题: 需求是这样的,遍历指定的文件夹,取得所有的文件的path,并存入一个list中。我想让这个list作为返回值返回回来,但是现在由于用到了递归,小弟便不知道如何是好了。 我现在用了一个全局变量filePathList来保存,但是这样很不方便,而且多线程的时候,不安全吧?如何才能用一个局部变量来保存,然后将其返回来呢。 谢谢大家了。public List<String> getFilePathList(File file) {File[] list = file.listFiles();if (list != null) {for (File file2 : list) {if (file2.isDirectory()) {getFilePathList(file2);} else {filePathList.add(file2.getPath());count++;}}}return filePathList;}
解决方案
public List<String> getFilePathList(File file) { List<String> filePathList = new ArrayList<String>(); File[] list = file.listFiles(); if (list != null) { for (File file2 : list) { if (file2.isDirectory()) { filePathList.addAll(getFilePathList(file2)); } else { filePathList.add(file2.getPath()); count++; } } } return filePathList; }
解决方案二:
把filePathList作为这个方法的第二个参数传进去