黑马程序员技术交流社区

标题: 文件删除的一个问题 一个if else问题 [打印本页]

作者: 刘凯    时间: 2013-2-22 11:40
标题: 文件删除的一个问题 一个if else问题
本帖最后由 刘凯 于 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下的代码执行不到
求大神指教 为什么?

作者: 匿名    时间: 2013-2-22 16:37
干嘛要加下面这些?
else // 这里为什么我用else就不能执行下边大括号的代码 ,而这里换为 if(file.isFile()) 就可以执行
{
System.out.println(file.getName());


去掉这些就已经可以解决你的需求问题了不是么?

作者: 刘凯    时间: 2013-2-22 18:18
匿名者 发表于 2013-2-22 16:37
干嘛要加下面这些?
else // 这里为什么我用else就不能执行下边大括号的代码 ,而这里换为 if(file.isFile( ...

文件夹也可以.java结尾啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2