public static void main(String[] args) 
{
String root="h:\\";
File file=new File(root);
String[] fileNames=file.list(); for(int i=0;i<fileNames.length;i++)
{
//simpleFile("h:\\abs\\");
//System.out.println(root+fileNames[i]);
deletesimpleFile(root+fileNames[i]);
}
}
我写了一个删除一个文件方法,在盘符中找到很多文件,反复调用,为什么只能删除一个

解决方案 »

  1.   

    当删除一个文件之后,你觉得root的这个文件夹里面的东西变了吗?
    原来的文件已经不存在了啊!重新赋值试试!
      

  2.   

    不明白了,看不懂了,file里面没有这个函数?
      

  3.   


    import java.io.*;public class DeleteFile {
    public static void main(String[] args) {
    delete(new File("d:\\test"));
    }

    public static void delete(File f) {//\递归删除文件或目录
    if(f.isDirectory()) {
                            //删除目录中的内容
    File[] files = f.listFiles();
    for(int i=0; i<files.length; i++) {
    delete(files[i]);
    }
                            //删除目录本身
    f.delete();
    } else {
    f.delete();
    }
    }
    }上面的代码或许能够满足楼主的需求,lz可以看看!
      

  4.   

    public static void main(String[] args) {
    deleteFile("C:\\test");
    }

    public static void deleteFile(String path){
    File f = new File(path);
    if (f.isFile())
    f.delete();
    else {
    if (!path.endsWith("\\"))
    path = path+"\\";
    for(String subFile:f.list()){
    System.out.println(path+subFile);
    deleteFile(path+subFile);
    }
    f.delete();
    }
    }
      

  5.   

    我就不给代码了,呵呵,楼上的已经可以了,我说下你这个问题是什么吧,你之所以只能删除一个,是因为你的File说指向的URL并没有被改变,所以如果逆向都删了了,那么每次都需更改当前删除URL的File。
      

  6.   

    哈哈,自己已经解决了,我删除单个文件是使用了System,exit(0).