无法删除原始文件

use*_*115 1 java apache-commons-io

我们使用批处理文件作为窗口服务运行jar并将xml文件放在c:/processed 目录中;

如果xml有一个错误的格式,然后将其移动到错误文件夹; 我们使用下面的方法将文件移动到错误文件夹,但得到以下异常.

我认为当进程运行时它无法将文件移动到错误文件夹.

FileUtils.moveToDirectory("a.xml", "c:/processed/error", false);
Run Code Online (Sandbox Code Playgroud)

movingErrorFolder中的异常:复制到'c:/processed/error/a.xml'后无法删除原始文件'c:/processed/a.xml'

小智 5

  1. java进程无权删除该文件,但如果您可以在其上写入,则可以将其删除.
  2. 该文件被另一个进程锁定.当您使用Excel编写csv打开时,通常会发生这种情况.
  3. 该文件由java进程self锁定,close()文件在移动之前.