获取目录及其子目录中的文件数

2022-09-03 08:20:33

使用此代码

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

返回特定目录中的文件夹和文件的总和,而不关心子目录。我想获取目录及其子目录中所有文件的数量。

附言:如果它返回所有文件和文件夹的总和,则无关紧要。

任何帮助赞赏,谢谢


答案 1

试试这个。

int count = 0;
getFile("/mnt/sdcard/folder/");

private void getFile(String dirPath) {
    File f = new File(dirPath);
    File[] files = f.listFiles();

    if (files != null)
    for (int i = 0; i < files.length; i++) {
        count++;
        File file = files[i];

        if (file.isDirectory()) {   
             getFile(file.getAbsolutePath()); 
        }
    }
}

它可能会帮助你。


答案 2

您可以使用递归。

public static int getFilesCount(File file) {
  File[] files = file.listFiles();
  int count = 0;
  for (File f : files)
    if (f.isDirectory())
      count += getFilesCount(f);
    else
      count++;

  return count;
}

推荐