我正在开发一个 mp3 播放器应用程序,它可以播放存在于内部 SD 卡中任何位置的 .mp3 文件。
我使用以下代码来获取内部存储中存在的 .mp3 文件。
ArrayList<File> inFiles = new ArrayList<File>();
File list[] = file.listFiles();
//Log.i("DIR", "PATH" +file.getPath());
for (int i = 0; i < list.length; i++)
{
// myList.add( list[i].getName() );
File temp_file = new File(file.getAbsolutePath(),list[i].getName());
//Log.i("DIR", "PATH" +temp_file.getAbsolutePath());
if (temp_file.listFiles() != null)
{
//Log.i("inside", "call fn");
listfiles(temp_file);
}
else
{
if (list[i].getName().toLowerCase().contains(".mp3"))
{
inFiles.add(list[i]);
//Log.e("Music", list[i].getName());
}
}
}
我如何同样从外部 SD 卡获取 .mp3 文件?
最佳答案
你可以使用这行代码获取外部sdcard的根目录
File root = Environment.getExternalStorageDirectory();
现在你可以做与内部相同的事情了
ArrayList<File> inFiles = new ArrayList<File>();
File list[] = root.listFiles(); // here use the root object of File class to the list of files and directory from the external storage
//Log.i("DIR", "PATH" +file.getPath());
for (int i = 0; i < list.length; i++)
{
// myList.add( list[i].getName() );
File temp_file = new File(file.getAbsolutePath(),list[i].getName());
//Log.i("DIR", "PATH" +temp_file.getAbsolutePath());
if (temp_file.listFiles() != null)
{
//Log.i("inside", "call fn");
listfiles(temp_file);
}
else
{
if (list[i].getName().toLowerCase().contains(".mp3"))
{
inFiles.add(list[i]);
//Log.e("Music", list[i].getName());
}
}
}
关于java - 如何在android中播放内部和外部SD卡中的mp3文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12005566/