无法在JAVA中删除文件

时间:2012-11-29 12:49:30

标签: java delete-file

我无法删除Java中的文件。在我的程序中,我创建一个文件,用它做一些事情,然后我必须删除它。当我调用myFile.delete()时,它返回false。我已经检查了它试图删除的路径和它的正确,我也有管理员权限(我正在使用Windows 7)。这是我的一段代码,非常简单:

File aux = new File(System.getProperty("user.dir")+"//tmp.ps");

CreatePostScript(aux.getAbsoluteFilePath());
SendToPrinter();

try{
    aux.delete();
}
catch(SecurityException ex){
     ex.printStackTrace();
}

编辑,我已经阅读了File对象的一些属性:

canRead() returns false
canWrite() returns false
exists() returns false
getPath() returns the_actual_path_of_the_file
isFile() returns false

5 个答案:

答案 0 :(得分:2)

你是从某个IDE里面做的吗?可能IDE正在保存文件句柄。 尝试下载Unlocker并查看谁握着句柄。

答案 1 :(得分:1)

当您对文件执行处理时,OutputStream可能仍处于打开状态。在尝试删除文件之前调用out.close();

答案 2 :(得分:1)

检查您是否提供了user.dir属性思想-D命令行参数。 并使用File.pathSeparator代替//

答案 3 :(得分:1)

您可以考虑使用Java 7的NIO2 API进行操作。当某些东西阻止它执行操作时,它实际上throws an exception而不是返回成功值。

答案 4 :(得分:0)

在您的代码中,我发现您在删除之前没有关闭流,关闭流并删除文件。