public ArrayList<File> fetchSongs(File file) {
ArrayList arrayList = new ArrayList();
File[] songs = file.listFiles();
if (songs != null) {
for (File myFile : songs) {
if (!myFile.isHidden() && myFile.isDirectory()) {
arrayList.addAll(fetchSongs(myFile));
}
else {
if (myFile.getName().endsWith(".mp3") && !myFile.getName().startsWith(".")) {
arrayList.add(myFile);
}
}
}
}
return arrayList;
}
我不明白arrayList.addAll
在arrayList
里面加了什么方法,是加文件夹吗?如果是为什么?因为在这个arrayList
里面应该只加mp3的歌吧?比如我把file里面的一个文件夹作为参数传入,那个文件夹里面都是mp3的歌,所以在songs
数组中,所有的mp3歌曲都将被存储,然后它将转到else
块,因为歌曲不是目录。那么arrayList.addAll
有什么用?如果不是歌曲,它将在`arrayList中添加什么?
1条答案
按热度按时间tktrz96b1#
代码片段将查看计算机上的文件夹并查找所有以“.mp3”结尾的文件。如果它在主文件夹中找到子文件夹,它也将查看该文件夹。
当函数完成时,它将返回目录中找到的所有mp3文件的列表。
严格来说