在系统开发时,有时需要在程序中把正在用到plugin文件删除,重新更新。这需要首先在java程序中停止使用这个plugin文件,然后删除,重新更新。我在开发是遇到这样的问题,在java中停止使用了plugin文件,但是在用过FileObj.delete时,返回false,在文件系统中删除plugin文件时,OS报错,说该文件正在使用中,等几秒中在删除就可以删除了。
我猜想可能是java已经不用该plugin文件了,但是OS还认为该文件还在被使用,所以报错,所以就写了个方法来强制删除改文件,不知道这样写有没有什么不妥?欢迎来拍砖!
[code]
/**
* try to delete given file , try 10 times
* @param f
* @return true if file deleted success, nor false;
*/
public static boolean forceDelete(File f)
{
boolean result = false;
int tryCount = 0;
while(!result && tryCount++ <10)
{
logger.debug("try to delete file "+ f.getName() +" cnt:"+tryCount);
System.gc();
result = f.delete();
}
return result;
}
[/code]
我猜想可能是java已经不用该plugin文件了,但是OS还认为该文件还在被使用,所以报错,所以就写了个方法来强制删除改文件,不知道这样写有没有什么不妥?欢迎来拍砖!
[code]
/**
* try to delete given file , try 10 times
* @param f
* @return true if file deleted success, nor false;
*/
public static boolean forceDelete(File f)
{
boolean result = false;
int tryCount = 0;
while(!result && tryCount++ <10)
{
logger.debug("try to delete file "+ f.getName() +" cnt:"+tryCount);
System.gc();
result = f.delete();
}
return result;
}
[/code]