Java.io----筛选_list_listfiles

11 篇文章 0 订阅
这篇博客详细介绍了如何使用Java.io中的`list`和`listFiles`方法来遍历文件夹,包括如何筛选文件并获取文件的名称、大小和最后修改时间。通过创建主函数调用相关方法,实现对文件系统的深度探索。
摘要由CSDN通过智能技术生成

list

  • 返回String类型的数组

  • FilenameFilter接口

    File f = new File("D:/code");
    //创建匿名内部类:测试指定文件是否应该包含在某一文件列表中;
           Filter filter = new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            if( name.endsWith(".txt")){ 
                return true;
            }else{
                return false;
            }	
        }
    };
    
    String [] arr2 = f.list(filter);
    for( String s : arr2){
        System.out.println(s);
    }
    

listFiles

  • 返回File类型的数组

    File f = new File("D:/code");
    File [] file = f.listFiles();
    
    //创建匿名内部类
    FileFilter filter = new FileFilter() {
        @Override
        public boolean accept(File pathname) {
            if(pathname.getName().endsWith(".txt")){
                return true;
            }else{
                return false;
            }
        }
    }; 
    //打印处此路径下满足条件的文件的名称、大小以及最后修改时间
    File [] file2  = f.listFiles(filter);
    for(File ff : file2 ){                                           
        String name = ff.getName();
        long len = ff.length();
        long t = ff.lastModified();
        System.out.println(name + "\t" + len + "\t" + new Date(t).toLocaleString());
    }
    

遍历

  • 遍历一个文件夹下所有子文件夹,打印文件的名称、大小和最后修改时间

    //创建一个含File参数的printFileInfo方法
    public void printFileInfo(File f){
        if( f.isFile() ){	//判断是否代表一个文件
            String name = f.getName(); 	//获取文件名
            long len = f.length();		//获取文件大小
            long t = f.lastModified();	//获取文件最后修改时间
            Date d = new Date(t);	
            System.out.println("--" + name + "\t" + len/1024.0/1024.0 + "\t" + d.toLocaleString());
        }else{
            //打印出目录(文件夹)名称
            System.out.println("【目录名称】" + f.getName());
            File [] cfs = f.listFiles();
            for( File cf : cfs){
                //递归,再次调用上述方法
                printFileInfo(cf);
            }
        }
    }
    
  • 创建主函数调用方法

    public static void main(String[] args) {
        File f = new File("D:/code");
        new Test03().printFileInfo(f);
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值