我如何从特定文件夹中获取所有Mp3文件的列表?
我的文件夹是
FILE_PATH = Environment.getExternalStorageDirectory().getPath() + "/my folder/"
以下代码显示所有文件夹中的所有mp3 ..我只想从我的文件夹中播放mp3
Cursor createCursor(String filter) {
ArrayList<String> args = new ArrayList<String>();
String selection;
if (mShowAll) {
selection = "(_DATA LIKE ?)";
args.add("%");
} else {
selection = "(";
for (String extension : CheapSoundFile.getSupportedExtensions()) {
args.add("%." + extension);
if (selection.length() > 1) {
selection += " OR ";
}
selection += "(_DATA LIKE ?)";
selection = selection + "AND (IS_MUSIC=1)";
}
selection += ")";
selection = "(" + selection + ") AND (_DATA NOT LIKE ?)";
args.add("%espeak-data/scratch%");
}
if (filter != null && filter.length() > 0) {
filter = "%" + filter + "%";
selection =
"(" + selection + " AND " +
"((TITLE LIKE ?) OR (ARTIST LIKE ?) OR (ALBUM LIKE ?)))";
args.add(filter);
args.add(filter);
args.add(filter);
}
答案 0 :(得分:4)
使用以下代码从所需文件夹中获取mp3文件列表: -
private ArrayList<String> listmp3 = new ArrayList<String>();
String[] extensions = { "mp3" };
private void loadmp3(String YourFolderPath) {
File file = new File(YourFolderPath);
if (file.isDirectory()) {
File[] files = file.listFiles();
if (files != null && files.length > 0) {
for (File f : files) {
if (f.isDirectory()) {
loadmp3(f.getAbsolutePath());
} else {
for (int i = 0; i < extensions.length; i++) {
if (f.getAbsolutePath().endsWith(extensions[i])) {
listmp3.add(f.getAbsolutePath());
}
}
}
}
}
}
}
答案 1 :(得分:0)
这个工作正常
Cursor createCursor(String filter) {
ArrayList<String> args = new ArrayList<String>();
String path = Environment.getExternalStorageDirectory().getPath();
String selection = MediaStore.Audio.Media.IS_MUSIC + " !=" + 0
+ " AND " + MediaStore.Audio.Media.DATA + " LIKE '" + path
+ "/Fast Mp3 Downloader/%'";
if (filter != null && filter.length() > 0) {
filter = "%" + filter + "%";
selection =
"(" + selection + " AND " +
"((TITLE LIKE ?) OR (ARTIST LIKE ?) OR (ALBUM LIKE ?)))";
args.add(filter);
args.add(filter);
args.add(filter);
}
String[] argsArray = args.toArray(new String[args.size()]);
getExternalAudioCursor(selection, argsArray);
getInternalAudioCursor(selection, argsArray);
Cursor c = new MergeCursor(new Cursor[] {
getExternalAudioCursor(selection, argsArray),
getInternalAudioCursor(selection, argsArray)});
startManagingCursor(c);
return c;
}