街头小贩 2016-10-14 00:48 采纳率: 0%
浏览 1316
已采纳

org.apache.commons.io.DirectoryWalker如何递归遍历

 public class DirectoryTracker extends DirectoryWalker<String> {
    private int bufferSize=100;
    private final List<String> workedBuffer=Collections.synchronizedList(new ArrayList<String>());
    private static final Logger log = LoggerFactory.getLogger(DirectoryTracker.class);

    public DirectoryTracker(FileFilter filter) {
        super(filter,-1);
        // TODO Auto-generated constructor stub
    }
    /**
     * 设置一次处理的结果集大小
     * @param size
     */
    public void setBufferSize(int size){
        this.bufferSize=size;
    }

    @Override
    protected boolean handleDirectory(File directory, int depth, Collection<String> results) throws IOException {
        // TODO Auto-generated method stub
        //这理怎么写
        return true;
    }

    @Override
    protected void handleFile(File file, int depth, Collection<String> results) throws IOException {
        // TODO Auto-generated method stub
        //super.handleFile(file, depth, results);
        results.add(file.getAbsolutePath());
    }

    private List<String> getAllFile(File startDirectory) throws IOException{
        List<String> result=new ArrayList<>(bufferSize);
        walk(startDirectory,result);
        return result;
    }
    //ETC
}

指定一个开始的目录(例:D:\Documents\Pictures),这个目录下有图片也有子目录,子目录的情况如父目录一样,现在这个类不进入子目录,怎样作到无限递归遍历

  • 写回答

3条回答 默认 最新

  • _1_1_7_ 2016-10-14 01:26
    关注

    // TODO Auto-generated method stub
    //这理怎么写
    if(depth==-1)return;
    File[] files=directory.listFiles();
    for(File file:files){
    if(file.isDirectory()){
    handleDirectory(file,depth-1,results);
    }else if(filter.accept(file)){
    handleFile(file,depth-1,results);
    }
    }

                手写的,没有编译调试过,大概是这个意思吧
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私