file.delete()有参数返回的
可以用boolean判断下

解决方案 »

  1.   

    file.delete会返回一个boolean值表示删除成功或失败。还有一个方法file.deletOnExit在虚拟机退出时删除
      

  2.   

    这个说法是对的还有 你要确保你的文件路径确实有那个文件
    比如你写成:File File = new File("123.txt"); //可能根本就没有这个文件和目录,因为相对路径经常写错
    File.delete();//文件名写错了时,这里不会报错,你也删不了你希望删的文件了此外"File"作为这个变量名,也是相当愚蠢的,因为你写成File.delete()
     我以为你正在调用File中的静态方法detele();
      

  3.   

    file.delete()好像不会报异常,只是会返回一个boolean值
      

  4.   

    比如你拿Office打开一个文件,然后程序再操作
      

  5.   

    试试我给你的这个呀package org.file.demo;import java.io.File;public class IODemo {    public static void main(String[] args) throws Exception {        File file = new File("D:" + File.separator + "testjava"); // 要创建的文件        list(file);    }    public static void list(File file) { // 列出目录内容        if (file.isDirectory()) { // 现在给定的路径是目录            File f[] = file.listFiles(); // 列出            if (f != null) { // 可以列出内容                for (int x = 0; x < f.length; x++) {                    list(f[x]); // 继续向下列出,递归                }            }        }        file.delete();  
    }
    }
     
      

  6.   

    我见过这样的情况,需要更改.txt文件里面的内容,思路是删除原来的文件然后新建一个同名的文件,但文件就是不能删除。纠结了好长时间也没能解决,后来没办法只能用数据库取代了。
      

  7.   

    你说的是文件没有删除掉还是调用方法后返回false?
    如果是调用File.delete()方法后返回false,那么就有3种情况:
    1、文件不存在
    2、删除的文件是文件夹,且文件夹不为空。
    3、文件正在被其他程序使用,或文件夹已被打开。
    如果是不能删除文件,则只可能是2和3两种情况。解决方法:
    1、删除文件前判断文件是否存在。
    2、遍历并循环删除文件夹下的文件后再删除文件夹。
    3、如果是windows操作系统,安装一个名为unlocker的软件,对你要删除的文件右击并选择“Unlocker”就可以查看是什么程序打开了该文件。
      

  8.   

    补充一下:
    2、删除的文件是文件夹,且文件夹不为空。
    如果是windows平台也可以使用rd命令加/s参数对文件夹及文件夹中的文件进行删除。
      

  9.   

    这个特别是上传临时文件后又要删除的时候 ,经常遇到。建议:根据boolean来判断,如果删不掉可以启动一个线程来删除,这个线程可以设置为守护线程。实在不行就写个定时器。
      

  10.   


    我也以为File调用的静态方法~~汗了
      

  11.   

    如果file是目录并且目录不是空目录会有这样的情况