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

a395885670 2012-03-26 10:57:43

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里面。上面的代码有什么问题吗?
...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
meaningful89 2012-03-26
  • 打赏
  • 举报
回复
public void readFiles(){
File file = new File("/file/" + this.getUserName());
File[] files = null;
if(file != null){
files = file.listFiles();
}
List<String> fileList = null; //错误1:fileList.add(fileName)会报错
for(File f : files){ //错误2:当file 不存在时也会报错
String fileName = f.getName();
fileList.add(fileName);
}
ActionContext.getContext().put("files", fileList);
}

修正:
public void readFiles(){
File file = new File("/file/" + this.getUserName());
File[] files = null;
if(null != file){
files = file.listFiles();
} esle {
return;
}
List<String> fileList = new ArrayList<String>();
for(File f : files){
String fileName = f.getName();
fileList.add(fileName);
}
ActionContext.getContext().put("files", fileList);
}
这样应该没问题了。
牙痴 2012-03-26
  • 打赏
  • 举报
回复
file.isDirectory
安特矮油 2012-03-26
  • 打赏
  • 举报
回复
可能不是太好,这样你只考虑到了第一层,如果文件夹里面还有文件夹的情况就没考虑了。而且你的判断也不对。给你一段参考一下

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);
}
}
}
}
brightyq 2012-03-26
  • 打赏
  • 举报
回复

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


= null ,没有办法往里面add.
dryZeng 2012-03-26
  • 打赏
  • 举报
回复
List<String> fileList = null;改成
List<String> fileList = new ArrayList<String>();
不然 fileList.add(fileName);这里会报空指针。
bree06 2012-03-26
  • 打赏
  • 举报
回复
如果只取得当前文件夹里的文件名的话只要用file.list()就可以了。
public static void main(String[] args) {
File file = new File("E:\\");
for (String filename : file.list())
System.out.println(filename);
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧