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接口,在此不作实现)。

  • 相关阅读:
    POJ 1873 计算几何
    POJ 1584 计算几何
    POJ 1410 计算几何
    BZOJ 1208 set
    BZOJ 1503 splay
    BZOJ 5277 IQ题orz
    Codeforces Round #549 (Div. 2)A. The Doors
    (原创)同余定理
    April Fools Day Contest 2019 A. Thanos Sort
    PTA数据结构之 List Leaves
  • 原文地址:https://www.cnblogs.com/xinxinBlog/p/10360066.html
Copyright © 2011-2022 走看看