无法重命名或删除文件实例

时间:2010-08-13 07:54:30

标签: java debugging maven-2 maven-plugin io

我正在编写一个Maven插件,使用File.delete()File.renameTo(File) JDK方法删除和重命名各种文件。

大概每次我运行插件时,其中一个操作失败,每次失败时都是一个不能删除或重命名的文件。一个明显的解释为什么文件无法删除是另一个进程正在使用它(我在Windows上运行),但我不知道哪个进程可能负责。问题无法一致地再现的事实暗示了线程问题,但AFAIK,Maven插件在单个线程中运行。很难获得有关问题原因的任何信息,因为上面提到的方法不会抛出异常,它们只会返回false。

有没有办法以编程方式检测锁定的文件和持有锁的进程的名称?或者,如果有人有关于如何调试此问题的其他建议,请发送给他们。

谢谢, 唐

1 个答案:

答案 0 :(得分:1)

Handle可以让您找出哪些进程处理文件。

示例输出(它是命令行实用程序):

C:\Users\Jon\Downloads\Handle>handle Test.cs

Handle v3.42
Copyright (C) 1997-2008 Mark Russinovich
Sysinternals - www.sysinternals.com

Test.exe           pid: 6088    190: C:\Users\Jon\Test\Test.cs