【问题标题】:Android: How to list all the sub folder inside a parent folder?Android:如何列出父文件夹中的所有子文件夹?
【发布时间】:2021-08-12 00:37:28
【问题描述】:

我想在我的 android 应用程序中显示子文件夹。如何获取父文件夹中所有子文件夹的路径。假设我有一个名为 Parent folder 的文件夹,其中有两个名为 Sub Folder 1Sub Folder 2 的子文件夹,如何在数组列表中获取这两个子文件夹的路径?

【问题讨论】:

  • Let's say I have a folder named Parent folder 不够。您应该从该文件夹的完整路径开始。
  • 子文件夹里面有子子文件夹怎么办?要求的深度是多少?

标签: java android arrays android-studio


【解决方案1】:
To list all sub files and sub directories nested in all levels, one solution is to use recursion algorithm:
  1. 在第一级列出文件。
  2. 对于第一级列表文件中的每个文件:

a-如果文件是目录:

  • 打印出目录名。
  • 对当前目录重复步骤 1 和 2。

b-如果文件是文件:

  • 打印出文件名。
  • 继续下一个文件。

示例代码:

public void listDirectory(String dirPath, int level) {
        File dir = new File(dirPath);
        File[] firstLevelFiles = dir.listFiles();
        if (firstLevelFiles != null && firstLevelFiles.length > 0) {
            for (File aFile : firstLevelFiles) {
                for (int i = 0; i < level; i++) {
                    System.out.print("\t");
                }
                if (aFile.isDirectory()) {
                    System.out.println("[" + aFile.getName() + "]");
                    listDirectory(aFile.getAbsolutePath(), level + 1);
                } else {
                    System.out.println(aFile.getName());
                }
            }
        }
}

【讨论】:

  • 这个函数中的level参数是什么?
  • level:用于缩进输出,使输出看起来像一个层次结构。该方法必须在 level = 0 的情况下调用。如您所见,在 listDirectory() 方法内部,有一个对自身的调用:listDirectory(aFile.getAbsolutePath(), level + 1);
猜你喜欢
  • 1970-01-01
  • 2020-07-02
  • 1970-01-01
  • 2011-05-11
  • 2018-08-06
  • 1970-01-01
  • 2016-02-26
  • 2013-11-26
  • 2013-05-01
相关资源
最近更新 更多