java怎么删除被进程占用的文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么删除被进程占用的文件相关的知识,希望对你有一定的参考价值。
这个文件过一段时间后又会生成,所以要使用语句删,麻烦大家帮帮忙,最好使用java语句删,要简单的
附下是我写的代码,但只有在不被进程占用的情况下才会起作用
public static void main(String[] args)
// TODO Auto-generated method stub
File file = new File("C:\\ProgramData\\QvodPlayer\\");
File files[] = file.listFiles();
for (int i = 0; i < files.length; i++)
if (files[i].length() > 30000000)
System.out.print("s");
files[i].delete();
删除被进程占用的文件,可以先判断文件是否被删除,如果没有,则让系统强制回收资源,进行文件的删除,示例如下:
if(!result)
System.gc();//系统进行资源强制回收
f.delete;
参考技术A
问题很明确,这个文件被QvodTerminal占用,需要kill进程。
如果遇到java自己占用了文件,System.gc();释放一下就能删了。
/*** 场景:locked.mp4被xx影音播放中,需要强行删除。
*/
@Test
public void testForceDeleteOutLock()
File file = new File("g:/locked.mp4");
boolean result = forceDeleteOutLock(file, "StormPlayer.exe");
System.out.println(result);
public static boolean forceDeleteOutLocked(File fileForDel, String LockAppName)
boolean result = false;
String cmd = "taskkill /f /im " + LockAppName;
try
Runtime.getRuntime().exec(cmd);
Thread.sleep(1000);
result = fileForDel.delete();
catch (IOException e)
e.printStackTrace();
catch (InterruptedException e)
e.printStackTrace();
return result;
本回答被提问者和网友采纳 参考技术B 这个涉及到进程问题吧,貌似不是JAVA能控制的范畴。 参考技术C 重启一下就可以了呗。
以上是关于java怎么删除被进程占用的文件的主要内容,如果未能解决你的问题,请参考以下文章