读取文件,传入固定参数时,多次调用结果无变化

1.写了一个方法,传入的参数是路径。创建或删除文件时,再次或多次调用该方法时,读取该路径下文件集合没有变化。
2:code

 filesLoacl= new File("XXXX固定路径").listFiles();
 getLocalFileName(filesLoacl);        
/***读取文件夹下所有文件的名称和路径 */
public  List<RecSongInformation>  getLocalFileName(File[] files) {
        List<RecSongInformation>data=new ArrayList<>();
        String address="";
        if (files != null)
        {
            for (File file : files) {
                if (file.isDirectory()) {
                    getLocalFileName(file.listFiles());
                } else {
                    String fileName = file.getName();
                    address=file.getAbsolutePath();
                    System.out.println("***address:"+address);
                    System.out.println("***name:"+fileName);
                    RecSongInformation recSongInformation=new RecSongInformation();
                    recSongInformation.setRecSongName(fileName);
                    data.add(recSongInformation);
                }

            }
        }
        return  data;
    }

3:上面的代码,我多次调用方法,其结果总是和第一次一样。但是我吧filesLocal重新赋值一下,就可以读取到最新的文件信息了。
4:这是什么原因,传参到底是怎么了。求……

阅读 2.4k
2 个回答

传递String值,把File的初始化放在方法体里面

public  List<RecSongInformation>  getLocalFileName(String filePath) {
        List<RecSongInformation>data=new ArrayList<>();
        File file = new File(filePath);
        if(file.exists()){
            File[] files = file.listFiles();
            String address="";
            if (files != null)
            {
                for (File file : files) {
                    if (file.isDirectory()) {
                        getLocalFileName(file.getAbsolutePath());
                    } else {
                        String fileName = file.getName();
                        address=file.getAbsolutePath();
                        System.out.println("***address:"+address);
                        System.out.println("***name:"+fileName);
                        RecSongInformation recSongInformation=new RecSongInformation();
                        recSongInformation.setRecSongName(fileName);
                        data.add(recSongInformation);
                    }
                }
              
            }
        }  
        return  data;
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题