zoukankan      html  css  js  c++  java
  • Java使用递归检索文件个数

     使用到了Java.io中的File类

    File类常见方法:

    1.boolen exists()

    2.String getName()

    3.boolean isDirectory()

    4.boolean isFile()

    5.File[] listFiles()

    import java.io.*;
    
    /*
    打印某个目录下所有文件和目录的名字
     */
    public class FileDisplay {
        public static void main(String[] args) throws Exception{
            FileDisplay fd=new FileDisplay();
            String dirName="G:\Users\14616\Pictures\古墓丽影";
            int count=fd.printDir(dirName);
            System.out.println("文件数"+count);
        }
    
    
        public int printDir(String dirName){
            int fileCount=0;
            File dirFile=new File(dirName);
            File[] subFile=dirFile.listFiles();
            System.out.println("fileLength"+subFile.length);
            if(subFile==null||subFile.length==0)
                return 0;
    
            for(int i=0;i<subFile.length;i++){
                if(subFile[i].isDirectory()){
                    String subDir=subFile[i].getAbsolutePath();
                    System.out.println("目录"+subDir);
    
                    fileCount+=printDir(subDir);
                }
    
                if(subFile[i].isFile()){
                    fileCount++;
                    String fileName=subFile[i].getAbsolutePath();
                    System.out.println("文件"+fileName);
                }
            }
            return fileCount;
        }
    }

    输出

    "G:Program FilesJavajdk1.8.0_121injava" "-javaagent:G:JetBrainsIntelliJ IDEA 2017.1.4libidea_rt.jar=58448:G:JetBrainsIntelliJ IDEA 2017.1.4in" -Dfile.encoding=UTF-8 -classpath "G:Program FilesJavajdk1.8.0_121jrelibcharsets.jar;G:Program FilesJavajdk1.8.0_121jrelibdeploy.jar;G:Program FilesJavajdk1.8.0_121jrelibextaccess-bridge-64.jar;G:Program FilesJavajdk1.8.0_121jrelibextcldrdata.jar;G:Program FilesJavajdk1.8.0_121jrelibextdnsns.jar;G:Program FilesJavajdk1.8.0_121jrelibextjaccess.jar;G:Program FilesJavajdk1.8.0_121jrelibextjfxrt.jar;G:Program FilesJavajdk1.8.0_121jrelibextlocaledata.jar;G:Program FilesJavajdk1.8.0_121jrelibext
    ashorn.jar;G:Program FilesJavajdk1.8.0_121jrelibextsunec.jar;G:Program FilesJavajdk1.8.0_121jrelibextsunjce_provider.jar;G:Program FilesJavajdk1.8.0_121jrelibextsunmscapi.jar;G:Program FilesJavajdk1.8.0_121jrelibextsunpkcs11.jar;G:Program FilesJavajdk1.8.0_121jrelibextzipfs.jar;G:Program FilesJavajdk1.8.0_121jrelibjavaws.jar;G:Program FilesJavajdk1.8.0_121jrelibjce.jar;G:Program FilesJavajdk1.8.0_121jrelibjfr.jar;G:Program FilesJavajdk1.8.0_121jrelibjfxswt.jar;G:Program FilesJavajdk1.8.0_121jrelibjsse.jar;G:Program FilesJavajdk1.8.0_121jrelibmanagement-agent.jar;G:Program FilesJavajdk1.8.0_121jrelibplugin.jar;G:Program FilesJavajdk1.8.0_121jrelib
    esources.jar;G:Program FilesJavajdk1.8.0_121jrelib
    t.jar;H:practiceoutproductionpractice" FileDisplay
    fileLength8
    文件G:Users14616Pictures古墓丽影image_rise_of_the_tomb_raider-27559-2982_0010.jpg
    文件G:Users14616Pictures古墓丽影image_rise_of_the_tomb_raider-27559-2982_0011.jpg
    文件G:Users14616Pictures古墓丽影image_rise_of_the_tomb_raider-27559-2982_0012.jpg
    文件G:Users14616Pictures古墓丽影image_rise_of_the_tomb_raider-28633-2982_0001.jpg
    文件G:Users14616Pictures古墓丽影image_rise_of_the_tomb_raider-29110-2982_0001.jpg
    文件G:Users14616Pictures古墓丽影image_rise_of_the_tomb_raider-29110-2982_0002.jpg
    目录G:Users14616Pictures古墓丽影新建文件夹
    fileLength5
    文件G:Users14616Pictures古墓丽影新建文件夹image_rise_of_the_tomb_raider-25298-2982_0001.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹image_rise_of_the_tomb_raider-25298-2982_0002.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹image_rise_of_the_tomb_raider-25298-2982_0003.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹image_rise_of_the_tomb_raider-27559-2982_0001.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹image_rise_of_the_tomb_raider-27559-2982_0007.jpg
    目录G:Users14616Pictures古墓丽影新建文件夹 (2)
    fileLength9
    文件G:Users14616Pictures古墓丽影新建文件夹 (2)image_rise_of_the_tomb_raider-29110-2982_0003.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹 (2)image_rise_of_the_tomb_raider-29110-2982_0006.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹 (2)image_rise_of_the_tomb_raider-30524-2982_0003.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹 (2)image_rise_of_the_tomb_raider-30659-2982_0005.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹 (2)image_rise_of_the_tomb_raider-30659-2982_0006.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹 (2)image_rise_of_the_tomb_raider-30659-2982_0010.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹 (2)image_rise_of_the_tomb_raider-30659-2982_0011.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹 (2)image_rise_of_the_tomb_raider-30659-2982_0016.jpg
    文件G:Users14616Pictures古墓丽影新建文件夹 (2)image_rise_of_the_tomb_raider-30659-2982_0017.jpg
    文件数20

    需要注意的是:

    listFiles方法返回的对象数组的长度是当前目录下文件和子目录的总数,而不是总文件的个数。

  • 相关阅读:
    面向对象的特征有哪些方面?
    构造器(constructor)是否可被重写(override)?
    swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
    Java的运算符
    staitc关键字
    final关键字
    java的基本知识技能(二)
    java的基本操作和基本知识技能
    java概述------
    java中有几种方法实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
  • 原文地址:https://www.cnblogs.com/umrx/p/7543087.html
Copyright © 2011-2022 走看看