android 你能解释我什么addAll方法是添加,因为它应该只添加mp3音乐[关闭]

68bkxrlz  于 2023-04-04  发布在  Android
关注(0)|答案(1)|浏览(117)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

5小时前关门了。
这篇文章是编辑和提交审查2小时前。
Improve this question

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歌曲,对吗?例如,我在文件中传递一个文件夹作为参数,该文件夹中的所有mp3.songs都在“songs”中。数组所有的mp3歌曲将被存储,然后它会去else块,因为歌曲不是目录,那么Arraylist有什么用。

czq61nw1

czq61nw11#

简单

代码片段将查看计算机上的文件夹并查找所有以“.mp3”结尾的文件。如果它在主文件夹中找到子文件夹,它也将查看该文件夹。
当函数完成时,它将返回目录中找到的所有mp3文件的列表。

技术上讲

  • 该函数将创建一个空的ArrayList,用于存储找到的**.mp3**文件。
  • 将以**.mp3**结尾的文件存储在songs数组中。
  • 循环遍历songs数组中的每个文件
  • 如果myFile在那里并且有子文件夹,则递归调用fetchSongs函数以查找目录中的所有**.mp3**文件。
  • 如果文件的扩展名为**.mp3**,并且不是以“.”开头,则会将其添加到arrayList中。
  • 返回arrayList,其中包含目录和子目录中的所有**.mp3**文件。

相关问题