package dang; import java.io.File; /** * @ClassName: FileCount * @Description: TODO() * @author: dangjinhu * @date: 2018年11月1日 下午2:24:58 */ public class FileCount { public static void main(String[] args) { int[] array = new int[]{0,0}; print(new File(args[0]),1,array); System.out.println("該目錄下面共有文件夾個數:"+array[0]); System.out.println("該目錄下面共有文件個數:"+array[1]); } /** * 打印指定文件夾下面的文件夾和文件的名字,統計該文件夾下面的文件夾數量和文件數量 * @param file 根文件夾 * @param level 深度從1開始算 * @param array 存放統計個數的數據,[0]文件夾個數,[1]文件個數 */ public static void print(File file,int level,int[] array){ if(file.isDirectory()){ array[0]++; File[] files = file.listFiles(); for (File item : files) { print(item,level+1,array); } }else{ array[1]++; System.err.println(array[1]); } } }
# @Author : 黨金虎 #!/usr/bin/python3 #coding:utf-8 """ TODO: """ # @Author : 黨金虎 # @Time : 2018/11/2 17:09 # @FileName: filecount.py import os path = '/...' # 獲取當前路徑 print(path) num_dirs = 0 # 路徑下文件夾數量 num_files = 0 # 路徑下文件數量(包括文件夾) num_files_rec = 0 # 路徑下文件數量,包括子文件夾里的文件數量,不包括空文件夾 for root, dirs, files in os.walk(path): # 遍歷統計 for each in files: if each[-2:] == '.o': print root, dirs, each num_files_rec += 1 print(num_files_rec) for name in dirs: num_dirs += 1 print os.path.join(root, name) for fn in os.listdir(path): num_files += 1 print fn print(num_dirs) print(num_files) print(num_files_rec)
Linux下統計文件個數,100多萬數據,深度2,平均一分鍾統計20000個文件