这个有点棘手。如果您可以控制或至少与复制文件的程序进行通讯,那真是小菜一碟,但是我猜这在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);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)