黑马程序员技术交流社区

标题: 删除带内容的目录 相关问题。求技术 [打印本页]

作者: 赵志勇    时间: 2012-5-14 17:14
标题: 删除带内容的目录 相关问题。求技术
今天下午没有午睡,脑子晕晕的,下面的这个程序是在是搞不出什么错了,以前遇到过这样的提示,可是现在怎么也想不出来了,求帮助。
import java.io.*;
class RemoveDir  
{
public static void main(String[] args)
{
  File dir=new File("e:\\javaprogram\\15");
  7removeDir(dir);
}
public static void removeDir(File dir)
{
  File[] files=dir.listFiles();
12 for (int x=0;x<files.length ;x++ )
  {
   if (files[x].isDirectory())
    removeDir(files[x]);
   else
      System.out.println(files[x].toString()+""+files[x].delete());
  }
  System.out.println(dir+"dir:::"+dir.delete());
}
}
Exception in thread "main" java.lang.NullPointerException
        at RemoveDir.removeDir(RemoveDir.java:12)
        at RemoveDir.main(RemoveDir.java:7)这样的提示是为什么呢?谢谢。


作者: 李啸    时间: 2012-5-14 17:33
public static void removeDir(File dir)
{
   File[] files=dir.listFiles();//OK  你可以试试在这里加一行代码 判断一下if(files!=null)试试看 因为在WIndows下好多文件不让外部访问
12 for (int x=0;x<files.length ;x++ )
   {
    if (files[x].isDirectory())
     removeDir(files[x]);
    else
       System.out.println(files[x].toString()+""+files[x].delete());
   }
   System.out.println(dir+"dir:::"+dir.delete());
}
}

作者: 郭振    时间: 2012-5-14 18:06
这是运行时期的异常,空指针异常,当引用没有任何指向值为null的情况,该引用还在用于操作实体。
兄弟你的代码没有什么大的毛病,就是没有要删除的对象所引起的。我把你的代码稍微的改了一下你看看吧!
import java.io.*;
import java.util.*;

public class Exercise2 {

        
       
        public static void main(String[] args)
        {
          File dir=new File("e:\\a");
          if(!dir.exists())
         dir.mkdir();//当没有对象的时候我们就自己创建个对象         
          
          removeDir(dir);
        }
        public static void removeDir(File dir)
        {
          File[] files=dir.listFiles();
       
          for(File file:files){
           if (file.isDirectory())
            removeDir(file);
           else
              System.out.println(file.toString()+""+file.delete());
          }
          System.out.println(dir+"dir:::"+dir.delete());
        }
        }



作者: 小小企鹅    时间: 2012-5-14 18:27
代码可以通过,看一下 e:\\javaprogram\\15 路径名是不是正确,\15是文件夹
作者: 梁小波    时间: 2012-5-14 18:33
同意楼上的观点,这是个异常吗!应该是由于你的引用指向的异常,应该传入的File dir是否为空引用引起的异常
作者: 赵志勇    时间: 2012-5-14 22:20
栗培文 发表于 2012-5-14 18:27
代码可以通过,看一下 e:\\javaprogram\\15 路径名是不是正确,\15是文件夹

高手,java program 没有空格,确实错了。谢谢。
作者: 赵志勇    时间: 2012-5-14 22:21
李啸 发表于 2012-5-14 17:33
public static void removeDir(File dir)
{
   File[] files=dir.listFiles();//OK  你可以试试在这里加一 ...

高手,谢谢啊
已经解决。
作者: 赵志勇    时间: 2012-5-14 22:22
郭振 发表于 2012-5-14 18:06
这是运行时期的异常,空指针异常,当引用没有任何指向值为null的情况,该引用还在用于操作实体。
兄弟你的 ...

高手。可以通过。:handshake




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