我无法删除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
答案 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)
在您的代码中,我发现您在删除之前没有关闭流,关闭流并删除文件。