黑马程序员技术交流社区
标题:
递归获取文件目录清单出错
[打印本页]
作者:
赵学刚
时间:
2012-12-9 00:35
标题:
递归获取文件目录清单出错
本帖最后由 赵学刚 于 2012-12-9 17:44 编辑
问题:为什么得到的list.size()是0呢,麻烦大家帮我看看哪里写错了,谢谢
public class FileTest {
/**
* 需求:把java文件目录清单输出到指定文件中
* 思路:1、对指定的目录进行递归
* 2、获取递归过程中所有的java文件路径
* 3、将这些路径存储到集合中
* 4、将集合中的数据输出到指定的文件中
* @throws IOException
*/
public static void main(String[] args) throws IOException {
File dir=new File("D:\\搜狗输入法");
List<File> list=new ArrayList<File>();
getFileList(dir,list);
System.out.println(list.size()) ;
writeToFile(list,new File("f:\\123.txt").toString());
}
public static void getFileList(File dir ,List<File> list){
File [] file=dir.listFiles();
for( File f: file ){
if(f.isDirectory())
getFileList(f, list);
else {
if(f.getName().endsWith("*.exe"))
list.add(f);
}
}
}
public static void writeToFile(List<File> list, String fileList) throws IOException{
BufferedWriter bw=new BufferedWriter(new FileWriter(fileList));
for(File f: list){
String path=f.getAbsolutePath();
bw.write(path);
bw.newLine();
bw.flush();
}
bw.close();
}
}
复制代码
作者:
小灰灰
时间:
2012-12-9 01:12
27行
~~~~~~~~~~~~~~~~~~~~~~~~~
作者:
赵学刚
时间:
2012-12-9 01:41
不好意思
27行
~~~~~~~~~~~~~~~~~~~~~~~~~
能说明白点吗,27是方法调用错了还是参数错了呢? 我感觉都对啊
作者:
yingying
时间:
2012-12-9 08:28
那就是你的else语句块没有执行,要么你的文件路径写的有问题,要么你的目录下就没有.exe文件
作者:
赵学刚
时间:
2012-12-9 12:30
嗯 else 确实没执行 不过目录那些都正确 问哈问题在哪?
要么你的文件路径写的有问题,要么你的目录下就没有.exe文件
作者:
田宇鹤
时间:
2012-12-9 13:31
public static void getAllile(File file, ArrayList<File> arr) {
//遍历当前目录
File[] fileArray = file.listFiles();
if(fileArray != null) {
for (File f : fileArray) {
//判断如果是目录就递归
if(f.isDirectory()) {
getAllile(f,arr);
}
else{
//如果是文件,并且以java结尾,就添加到集合中
if(f.getName().endsWith(".mp3")) {
arr.add(f);
}
}
}
}
}
}
我写这个时出过空指针异常 , 后来加if判断 if(fileArray != null) { 就没事了
作者:
赵学刚
时间:
2012-12-9 15:20
嗯 谢谢 我那个加了也还是一样的
作者:
种生祥
时间:
2012-12-9 15:21
endsWith(".exe");//不是
*.exe
作者:
赵学刚
时间:
2012-12-9 17:43
{:soso_e100:}{:soso_e179:}谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2