如何在Java中打开文件之前等待Windows进程完成

如何在Java中打开文件之前等待Windows进程完成,第1张

如何在Java中打开文件之前等待Windows进程完成

这个有点棘手。如果您可以控制或至少与复制文件的程序进行通讯,那真是小菜一碟,但是我猜这在Windows下是不可能的。不久前,我不得不使用SFU软件处理类似的问题,我通过循环尝试打开文件进行写入直到文件可用来解决了该问题。

为避免在循环时占用大量CPU,可以按指数分布速率检查文件。

编辑 可能的解决方案:

File fileToCopy = File(String pathname);int sleepTime = 1000; // Sleep 1 secondwhile(!fileToCopy .canWrite()){    // Cannot write to file, windows still working on it    Sleep(sleepTime);    sleepTime *= 2; // Multiply sleep time by 2 (not really exponential but will do the trick)    if(sleepTime > 30000){         // Set a maximum sleep time to ensure we are not sleeping forever :)        sleepTime = 30000;    }}// Here, we have access to the file, go process itprocessFile(fileToCopy);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5105470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存