get number of files in a directory and its subdirectories

后端 未结 12 866
猫巷女王i
猫巷女王i 2020-12-28 09:19

using this code

new File(\"/mnt/sdcard/folder\").listFiles().length

returns a sum of folders and files in a particular directory without ca

相关标签:
12条回答
  • 2020-12-28 09:53
    public int numberOfFiles(File srcDir) {
        int count = 0;
        File[] listFiles = srcDir.listFiles();
        for(int i = 0; i < listFiles.length; i++){
            if (listFiles[i].isDirectory()) {
                count += numberOfFiles(listFiles[i]);
            } else if (listFiles[i].isFile()) {
                count++;
            }
        }
        return count;
    }
    
    0 讨论(0)
  • 2020-12-28 09:54

    You have to go though all the folder recursively and find out the files

    int mCount;
    
    getTotalFiles(File dir) {
        File[] files = dir.listFiles();
        for (File file : files) {
            if (file.isDirectory()) {
                getTotalFiles(file);
            } else {
                mCount++;
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-28 09:58

    Something I've used before, you can easily edit it to get what you want:

    public class Filewalker {
    
        public void walk( String path ) {
    
            File root = new File( path );
            File[] list = root.listFiles();
    
            for ( File f : list ) {
                if ( f.isDirectory() ) {
                    walk( f.getAbsolutePath() );
                    System.out.println( "Dir:" + f.getAbsoluteFile() );
                }
                else {
                    System.out.println( "File:" + f.getAbsoluteFile() );
                }
            }
        }
    
        public static void main(String[] args) {
            Filewalker fw = new Filewalker();
            fw.walk("c:\\" );
        }
    }
    
    0 讨论(0)
  • 2020-12-28 09:59

    Here's a short one all encapsulated within a single method just returning the number of files and directories within a specific directory:

    public static int countFiles(File directory) {
        int count = 0;
        for (File file : directory.listFiles()) {
            if (file.isDirectory()) {
                count += countFiles(file); 
            }
            count++;
        }
        return count;
    }
    

    Cheers!

    0 讨论(0)
  • 2020-12-28 09:59

    http://www.java2s.com/Code/Java/File-Input-Output/Countfilesinadirectoryincludingfilesinallsubdirectories.htm

    public static int countFilesInDirectory(File directory) {
      int count = 0;
      for (File file : directory.listFiles()) {
          if (file.isFile()) {
              count++;
          }
          if (file.isDirectory()) {
              count += countFilesInDirectory(file);
          }
      }
      return count;
    }
    

    refer this site

    it gives perfect answer

    0 讨论(0)
  • 2020-12-28 09:59
    import java.io.File;
    import java.util.Scanner;
    
    public class Test {
    
        public static void main(String[] args) {
    
    
         Scanner sc=new Scanner(System.in);  
    
         System.out.println("Enter the Path for Directory/Folder Name");  
         String Directory=sc.nextLine(); 
         System.out.println("Your Directory/folder is :"+Directory);
    
         File f = new File(Directory);
    
         int countFiles = 0;
         int countDirectory=0;
         for (File file : f.listFiles()) {
                 if (file.isFile()) {
                         countFiles++;
                 }
                 if (file.isDirectory()) {
                         countDirectory++;
                 }
    
         }
         System.out.println("Number of files in Directory : " + countFiles+"\nNumber of Sub-directories "+countDirectory);
    
        }
    
    }
    
    0 讨论(0)
提交回复
热议问题