【问题标题】:Activity to search all music files (or a particular extension) in Android storage在 Android 存储中搜索所有音乐文件(或特定扩展名)的活动
【发布时间】:2015-08-08 09:49:23
【问题描述】:

我正在构建一个 Android 应用程序,它以我的自定义 .fire 扩展名格式写入文件。

我需要一次访问它们并将它们放在 ListView 中。有人可以帮我通过活动或异步任务管理器获取它们吗?

【问题讨论】:

    标签: android file-handling


    【解决方案1】:

    您可以编写一个异步任务来从您最初写入它们的文件夹中获取 .fire 文件,并将文件名动态添加到列表视图中。

    你可以在你的异步任务中做这样的事情:

    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        File root = android.os.Environment.getExternalStorageDirectory();
        File dir = new File(root.getAbsolutePath() + "/"+FolderWhichContainsyourFiles);
        File[] listOfFiles = dir.listFiles();
        for (int count = 0; count < listOfFiles.length; count++) {
            File file = listOfFiles[count];
            if (file.isFile() && file.getName().endsWith(".fire")) {                
                String fileName = file.getName();
                //Here you can dynamically add this name into the ListView
            }
        }
    }
    

    您需要使用 ArrayAdapter 并将元素动态添加到 ArrayAdapter。这里有精彩的解释:Dynamically add elements to a listView Android

    【讨论】:

      【解决方案2】:

      如果你想递归查找文件:

      private static List<File> filesList = new ArrayList<File>();
      public static List<File> recursiveList(String filePath) {
          try {
              File[] dir = new File(filePath).listFiles();
              for (File item : dir) {
                  if (item.isDirectory()) recursiveList(item.getAbsolutePath());
                  else if (item.isFile() && item.getName().endsWith(".fire"))
                      filesList.add(item);
              }
              return filesList;
          } catch (Exception e) {
              return null;
          }
      }
      

      并在活动中检索文件:

      List<File> files = recursiveList("/sdcard/Music/");
      for (File file : files)
          adapterFilesList.add("" + file.getName());
      

      【讨论】:

        猜你喜欢
        • 2016-10-23
        • 1970-01-01
        • 2021-04-24
        • 2011-10-23
        • 1970-01-01
        • 2010-12-21
        • 2022-01-13
        • 2014-08-11
        • 1970-01-01
        相关资源
        最近更新 更多