Gay*_*ndo 8 java file delete-file
我创建了一个属性文件,我想加密保留相同的文件夹加密属性文件并删除原始属性文件.当我第一次在我的java应用程序上执行此操作时,它确实正确.但是,当我再次执行此操作时,它不会删除创建的原始属性文件.当我尝试手动删除它时,它再次尝试消息说"由于文件在java(TM)平台SE二进制文件中打开,因此操作无法完成.关闭文件并重试." 关闭我的应用程序后,可以手动删除它.我的代码如下.问题在于propfile123.delete().我该如何解决这个问题.
//Encrypt the property file
Encrypt_Decrypt encrpt= new Encrypt_Decrypt("AES/ECB/PKCS5Padding","properties\\"+name_of_propertice_file+".properties", mstr_pass);
try {
encrpt.encrypt();
} catch (Exception ex) {
Logger.getLogger(Secure_File.class.getName()).log(Level.SEVERE, null, ex);
}
//delete the original properties file
File propfile123= new File("properties\\"+name_of_propertice_file+".properties");
System.out.println(propfile123.exists()); // always return true
System.out.println(propfile123.delete()); //here returns false when I call at second time to this method.
Run Code Online (Sandbox Code Playgroud)
Ste*_*n C 13
证据很清楚,删除失败的原因是你的应用程序仍然在某个地方打开文件.
为了解决这个问题,你需要弄清楚哪里要打开的文件,并确保您关闭它......你试图删除它之前.(我怀疑这个问题与你的Encrypt_Decrypt班级以及你使用它的方式有关.但这只是猜测.)
当您打开文件时:
BufferedReader br = new BufferedReader (new FileReader (new File ("somefile")));
Run Code Online (Sandbox Code Playgroud)
如果你不打电话给你的方法close(),BufferedReader你就无法删除该文件.
始终在对文件进行任何更改之前关闭该文件,甚至将其删除或重命名.我希望能帮助你,问候.
| 归档时间: |
|
| 查看次数: |
22837 次 |
| 最近记录: |