1

我无法在 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
4

5 回答 5

2

您是从某个 IDE 内部执行此操作的吗?IDE 可能正在保存文件句柄。尝试下载Unlocker并查看谁在握住手柄。

于 2012-11-29T12:54:56.860 回答
1

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

于 2012-11-29T12:54:46.213 回答
1

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

于 2012-11-29T12:58:29.320 回答
1

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

于 2012-11-29T12:56:24.800 回答
0

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

于 2012-11-29T12:57:53.110 回答