如何计算外部存储中文件夹中的文件数?

时间:2014-05-28 08:20:44

标签: android

我想知道我在外部存储库中保存的文件夹中下载文件的数量

5 个答案:

答案 0 :(得分:6)

尝试此操作,并将 yourfolder 替换为您的实际文件夹名称

File dir = new File(Environment.getExternalStorageDirectory() + "/yourfolder");
File[] files = dir.listFiles();
int numberOfFiles = files.length;

答案 1 :(得分:2)

     File sdCardRoot = Environment.getExternalStorageDirectory();
        File yourDir = new File(sdCardRoot, "New Folder");
int counter = 0;
        for (File f : yourDir.listFiles()) {
            if (f.isFile())


        {

            String name = f.getName();
    counter++;
                    Log.i("file names", name);


        }
    Log.d("TAG", "File count: " + counter);
        }

试试这个。我之前没试过,但值得一试。干杯!

答案 2 :(得分:1)

你可以做到

int count = file.listFiles().length;

其中file是您文件夹的路径。

此外,如果您的文件夹中有其他文件夹,则应该执行类似

的操作
int count=0;

for (File  file : file.listFiles())
{
    if(!file.isDirectory())
        count++;
}

答案 3 :(得分:1)

试试这个:

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String folderName = "MyFolder";

File f = new File(baseDir + File.Separator + folderName);

int count = f.listFiles().length

答案 4 :(得分:0)

如果文件夹内有子目录,如下所示:

- enquiredFolder
  - image.jpg
  - movie.mp4
  - gif.gif
  - someFolder
    - imageInFolder.jpg
    - movieInFolder.mp4

然后接受的答案将返回4(因为在查询的文件夹中有4个文件),但是如果算上子目录,实际上有6个文件。


如果您想知道目录中的实际文件数,可以这样做:

public int getNumberOfFiles(File path) {
    int numberOfFiles = 0;
    if(path.exists()) {
        File[] files = path.listFiles();
        if (files == null) {
            return numberOfFiles;
        }
        for (File file : files) {
            if (file.isDirectory()) {
                numberOfFiles++;
                numberOfFiles = numberOfFiles + getNumberOfFiles(file);
            } else {
                numberOfFiles++;
            }
        }
    }
    return numberOfFiles;
}

这将返回目录(包括子目录)中的文件总数。