A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘凯 金牌黑马   /  2013-2-22 11:40  /  1609 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘凯 于 2013-2-22 16:26 编辑

  1. import java.io.*;

  2. class DeleteClass
  3. {
  4. public static void main(String[] args)
  5. {
  6. File dir = new File("E:\\java0216");
  7. int count = 0;
  8. count = delete(dir,count);
  9. System.out.println("共删除"+count+"个文件");
  10. }
  11. public static int delete(File dir,int count)
  12. {
  13. File[] files = dir.listFiles();

  14. if(files!=null)
  15. {
  16. System.out.println(files.length);
  17. for(File file : files)
  18. {
  19. if(file.isDirctory())
  20. count = delete(file.getAbsoluteFile(),count);

  21. else // 这里为什么我用else就不能执行下边大括号的代码 ,而这里换为 if(file.isFile()) 就可以执行
  22. {
  23. System.out.println(file.getName());
  24. if(file.getName().endsWith(".class")||file.getName().endsWith(".bak"))
  25. {
  26. System.out.println("删除 ..."+file.getName());
  27. file.delete();
  28. count++;
  29. }
  30. }
  31. }
  32. }
  33. return count;

  34. }
  35. }
复制代码
写了个小程序 想删除E:\java0216文件夹下所有.class和.java.bak文件
如上编代码注释处,用if(file.isFile())来判断就可以执行括号中的代码   换做else就执行不到 括号中的代码。 也就是说 这里else下的代码执行不到
求大神指教 为什么?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

2 个回复

倒序浏览
黑马网友  发表于 2013-2-22 16:37:00
沙发
干嘛要加下面这些?
else // 这里为什么我用else就不能执行下边大括号的代码 ,而这里换为 if(file.isFile()) 就可以执行
{
System.out.println(file.getName());


去掉这些就已经可以解决你的需求问题了不是么?
回复 使用道具 举报
匿名者 发表于 2013-2-22 16:37
干嘛要加下面这些?
else // 这里为什么我用else就不能执行下边大括号的代码 ,而这里换为 if(file.isFile( ...

文件夹也可以.java结尾啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马