楼主的path是动态的呢,还是静态的?可以打断点看看,是否有path对应的文件,有没有其他程序在读写文件,在你删除时,如果有其他程序在读写文件,那就删不掉了。

解决方案 »

  1.   

    数据库总存的跟目录下文件名一样吧,拿到当前信息ID,拿到数据库中文件名称。获取目录下的此文件名称,然后删除。String path = ServletActionContext.getServletContext().getRealPath(
    "/display/images/");
    String sPath = path + "/" + in.getTitlepic();
    DelFileUtil dfu = new DelFileUtil();
    dfu.deleteFile(sPath);
    private Boolean flag;
    private File file;
    public boolean deleteFile(String sPath) {
    flag = false;
    file = new File(sPath);
    // 路径为文件且不为空则进行删除
    if (file.isFile() && file.exists()) {
    file.delete();
    flag = true;
    }
    return flag;
    }
      

  2.   

    静态的路径,现在的问题是FileInputStream stream = new FileInputStream(path); 
    我取了stream ,文件就被占用了,删不掉,return之后,就不占用了,但是return之后,我不知道怎么写代码删除!
      

  3.   


    不能删除的原因是,我在下载这个文件,占用着呢,不让删除,return之后,显示下载框,下载完了就不占用了!能不能把文件复制一份放在内存啥的,删除源文件,然后return复制在内存的文件呢?
      

  4.   

    静态的路径,现在的问题是FileInputStream stream = new FileInputStream(path); 
    我取了stream ,文件就被占用了,删不掉,return之后,就不占用了,但是return之后,我不知道怎么写代码删除!你这个临时文件时放在固定目录下的吗?如果是的话,就不用在这里删除了,每次存放临时文件时,先判断目录是否为空,不为空,清空目录,然后再存放自己的临时文件。
      

  5.   

    你下载完成之后,先不return ,先执行刷新到客服端,然后关闭文件流。再去执行文件的真实删除。