• Java中File类如何扫描磁盘所有文件包括子目录及子目录文件


    详细情况看代码吧,我这个代码有个BUG,扫描U盘的时候可能会报空指针异常,希望大虾指点下

    import java.io.File;
    import java.util.ArrayDeque;
    
    public class FileListDemo {
        public static void main(String[] args) {
            File f1 = new File("E:\");
            //深度搜索
            getPathDFS(f1);
            
            System.out.println("======================");
            
            //广度搜索
            getPathBFS(f1);
        }
    
        private static void getPathBFS(File f1) {
            //输出第一层目录
            System.out.println(f1);
            //运用队列进行广度搜索
            ArrayDeque<File> deque = new ArrayDeque<File>();
            //第一个File实例入队
            deque.offer(f1);
            //队列为空时停止
            while(!deque.isEmpty()){
                //取队头
                File[] ff = deque.peek().listFiles();
                //出队
                deque.poll();
                for(int i=0;i<ff.length;i++){
                    //如果是文件夹入队
                    if(ff[i].isDirectory()){
                        System.out.println(ff[i]);
                        deque.addLast(ff[i]);
                    }else{
                        System.out.println(ff[i]);
                    }
                }
            }
        }
    
        private static void getPathDFS(File f1) {
            System.out.println(f1.getName());
            File[] file = f1.listFiles();
            for(int i=0;i<file.length;i++){
                //如果是个文件夹就继续搜索
                if(file[i].isDirectory()){
                    getPathDFS(file[i]);
                }else{
                    //不是文件夹就直接输出
                    System.out.println(file[i]);
                }
            }
        }
    
    }
  • 相关阅读:
    Git
    Qcon2016上海站PPT
    TeamCity
    在cmd界面,怎么样退出Node.js运行环境
    python 2.x与python3.x的区别
    d3.max()与d3.min()
    d3.svg.line() 曲线构造器
    d3.js 之SVG:矢量化图形绘制
    moment.js 时间格式化库
    directive
  • 原文地址:https://www.cnblogs.com/hnzyyTl/p/4960540.html
Copyright © 2020-2023  润新知