zoukankan      html  css  js  c++  java
  • 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]);
                }
            }
        }
    
    }
  • 相关阅读:
    模拟100 题解
    模拟99 题解
    模拟98 题解
    模拟97 题解
    模拟96 题解
    模拟95 题解
    模拟94 题解
    模拟93 题解
    模拟92 题解
    Django-- 多数据库联用
  • 原文地址:https://www.cnblogs.com/hnzyyTl/p/4960540.html
Copyright © 2011-2022 走看看