Java递归实现输入任意目录,列出文件以及文件夹

来源:互联网 发布:北京索顿网络是培训吗 编辑:程序博客网 时间:2024/05/23 23:48
import java.io.File;import java.util.ArrayList;import java.util.Scanner;public class IOPractice {    public static ArrayList<String> dirs=new ArrayList<>();    public static ArrayList<String> files=new ArrayList<>();    public static void isDir(File file){        if(file.isDirectory()){            dirs.add(file.getName());            File[] list=file.listFiles();            for(File f : list){                isDir(f);            }        }else{            files.add(file.getName());        }    }    public static void main(String []args){        String filePath;        Scanner in = new Scanner(System.in);        filePath=in.nextLine();        File file=new File(filePath);        isDir(file);        int countforDir=0;        int countforFile=0;        System.out.println("文件夹有:"+IOPractice.dirs.size()+"个");        for (String dir : IOPractice.dirs){            countforDir++;            System.out.printf("%20s",dir);            if(countforDir%8==0){                System.out.println();            }        }        System.out.println();        System.out.println("----------------------------------------------------------------------------------------------");        System.out.println("文件有:"+IOPractice.files.size()+"个");        for(String f : IOPractice.files){            countforFile++;            System.out.printf("%40s",f);            if(countforFile%5==0){                System.out.println();            }        }    }}

一开始跑E盘发现程序直接崩了。。。检查代码发现逻辑没有问题,觉得可能是内存不够所以递归没办法一直跑下去。用较小的文件夹测试没有问题。

阅读全文
0 0
原创粉丝点击