zoukankan      html  css  js  c++  java
  • java递归遍历目录获取所有文件及目录方案

    本文提供一份递归遍历目录获取所有文件及目录的源代码:

    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by Administrator on 2019/2/10.
     */
    public class TestWalkDir {
    
        static class FileComponent
        {
            File curFile;
            List<FileComponent> fileComponentList = new ArrayList<FileComponent>();
    
            public FileComponent(File file)
            {
                curFile = file;
                File[] childFiles = curFile.listFiles();
                if(null != childFiles && childFiles.length > 0) {
                    for (File child : childFiles) {
                        FileComponent childFileComp = new FileComponent(child);
                        fileComponentList.add(childFileComp);
                    }
                }
            }
    
            public FileComponent(String filePath)
            {
                this(new File(filePath));
            }
    
            public List<File> getAllFilesAndDirsList()
            {
                List<File> files = new ArrayList<File>();
                files.add(curFile);
                for (FileComponent child: fileComponentList)
                {
                    files.addAll(child.getAllFilesAndDirsList());
                }
                return files;
            }
        }
    
        static class Tester
        {
            public static void main(String[] args) {
                FileComponent fileComponent = new FileComponent("F:\root");
                List<File> files = fileComponent.getAllFilesAndDirsList();
                for (File file: files)
                {
                    System.out.println(file);
                }
            }
        }
    
    }
    

    演示效果如下,所有的文件名及目录名都被打印出来了。

    基于以上代码,按照自己的需求额外扩展实现(例如获取所有文件、或者所有目录,或者提供Iterator接口,在此不作实现)。

  • 相关阅读:
    Android 黑科技保活实现原理揭秘
    Flutter +携程=?
    图解设计模式-Prototype模式
    图解设计模式-Singleton模式
    比较B-tree索引与Hash索引
    类元数据Class Metadata
    DriverManager类
    XMLMapperBuilder类
    PooledDataSource类
    Java并发编程的艺术(笔记)
  • 原文地址:https://www.cnblogs.com/xinxinBlog/p/10360066.html
Copyright © 2011-2022 走看看