日期:2014-05-20  浏览次数:20804 次

求助:如何读取一个文件夹里文件的文件名
Java code

public void readFiles(){
        File file = new File("/file/" + this.getUserName());
        File[] files = null;
        if(file != null){
            files = file.listFiles();
        }
        List<String> fileList = null;
        for(File f : files){
            String fileName = f.getName();
            fileList.add(fileName);
        }
        ActionContext.getContext().put("files", fileList);
    }



我需要读取一个用户自己文件夹里的所有文件,并保存在一个List里面。上面的代码有什么问题吗?

------解决方案--------------------
如果只取得当前文件夹里的文件名的话只要用file.list()就可以了。
Java code
public static void main(String[] args) {
        File file = new File("E:\\");
        for (String filename : file.list())
            System.out.println(filename);
    }

------解决方案--------------------
List<String> fileList = null;改成
 List<String> fileList = new ArrayList<String>();
不然 fileList.add(fileName);这里会报空指针
------解决方案--------------------
Java code

List<String> fileList = null;
改成List<String> fileList = new ArrayList<String>();

------解决方案--------------------
可能不是太好,这样你只考虑到了第一层,如果文件夹里面还有文件夹的情况就没考虑了。而且你的判断也不对。给你一段参考一下
Java code

    public void getFilesName(List<String> list, File dir){
        if(dir.exists() && dir.isDirectory()){
            File[] files = dir.listFiles();
            for(File f : files){
                if(f.isFile()){
                    list.add(f.getName());
                }else{
                    getFilesName(list, f);
                }
            }
        }
    }