【发布时间】:2020-08-15 07:46:59
【问题描述】:
这里是初级 Java 程序员。我正在尝试在我的 Mac(最终是 Android)上制作一个简单的 mp3 播放器,我想让它自动识别你设备上已经存在的所有音乐 (mp3)。
我有一个简单的 for 循环设置,它从主目录开始,遍历所有其他目录以查找 mp3s。我还没有看到它完成循环,因为我总是不得不强制停止它,因为它持续了很长时间。我可以排除一些文件夹,因为在其中放置音乐没有意义,但我觉得有更好的方法。
我可以研究比for 循环更快和/或更有效的其他方法吗?
我也很好奇 mac 中的 finder 是如何工作的。例如,当我使用查找器在我的 mac 上查找所有 mp3 文件时,结果只需几秒钟即可显示出来,我只需要输入一些搜索条件即可。如果有人能指出我如何完成类似的事情,那就太好了,我会接受我能得到的任何意见!
public static void findAudio(File currentDir) {
File[] filesInDir = currentDir.listFiles();
if (filesInDir != null){
if (filesInDir.length == 0){
return;
}
else {
for (File file : filesInDir) {
if (!file.isHidden()) {
if (file.isDirectory()) {
findAudio(file);
}
if (file.canRead()) {
if (file.getName().endsWith(".mp3")) {
System.out.println(file.getPath());
}
}
}
}
}
}
else {
System.out.println(currentDir.getPath() + " is null -- skipping");
}
}
【问题讨论】:
标签: java algorithm file audio mp3