读取Android文件系统中的所有文件

时间:2011-08-11 17:44:19

标签: android android-manifest

我正在编写一个Android mediaPlayer应用程序,所以我想扫描整个手机上的所有文件(即SD卡和手机内存)。我可以从SD卡中读取,但不能读取它的根。也就是说,我可以从路径/sdcard/[folder]/中读取并且它工作正常,但如果我转到/sdcard/应用程序崩溃。如何访问SD卡上的所有文件以及手机本身的文件?

1 个答案:

答案 0 :(得分:9)

永远不要使用/ sdcard / path。它不能保证一直工作。

使用以下代码获取sdcard目录的路径。

File root = Environment.getExternalStorageDirectory();
String rootPath= root.getPath();

从rootPath位置,您可以构建SD卡上任何文件的路径。例如,如果/DCIM/Camera/a.jpg上有图像,则绝对路径为rootPath +“/ DCIM / Camera / a.jpg”。

但是要列出SD卡中的所有文件,您可以使用以下代码

String listOfFileNames[] = root.list(YOUR_FILTER);

listOfFileNames将包含SD卡中存在的所有文件的名称,并传递过滤器设置的条件。

假设您只想列出mp3文件,然后将下面的过滤器类名传递给list()函数。

FilenameFilter mp3Filter = new FilenameFilter() {
File f;
    public boolean accept(File dir, String name) {

        if(name.endsWith(".mp3")){
        return true;
        }

        f = new File(dir.getAbsolutePath()+"/"+name);

        return f.isDirectory();
    }
};

词shash