【发布时间】:2013-08-02 08:48:36
【问题描述】:
我发现当我使用下面的代码时,它可以在 AVD 上运行,但是当我在物理设备或 Bluestacks 上打开它时 - 列表是空的,即使音乐文件在 sdcard 上。有谁知道怎么回事?
而且,如果你知道如何让它从内存中读取文件,我将不胜感激,因为我发现 - 许多手机具有大内存容量并且它们不使用 sd 卡(其中一些甚至不能)。
代码如下:
static Uri[] mUris;
static String[] mFiles = null;
public static String[] getMusic(){
File music = Environment.getExternalStorageDirectory();
// File asd = Environment.
// String[] savedFiles = getApplicationContext().fileList();
File[] musicList = music.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return ((name.endsWith(".mp3")||(name.endsWith(".wav"))));
}
});
mFiles = new String[musicList.length];
for(int i=0; i<musicList.length;i++) {
mFiles[i]=musicList[i].getAbsolutePath();
}
return mFiles;
}
【问题讨论】:
-
listFiles 不是递归的。它列出了目录的内容,但不列出子目录的内容。您确定 /sdcard 中有以 mp3 或 wav 结尾的文件吗?
-
它在子目录中。我不知道它只读取没有子目录的主文件夹。我该怎么做?
标签: android file listview android-sdcard