我有一个简单的Java应用程序,它试图通过WAN复制文件(从爱尔兰到纽约)。
我最近将其修改为使用FileUtils
,因为原生Java文件复制太慢了。我研究发现,因为Fileutils
使用了NIO,所以它更好。文件复制现在工作得很好,但有时我需要复制非常大的文件(> 200Mb),复制失败并出现错误:
java.io.IOException: Failed to copy full contents from...
我知道这个错误意味着目标文件大小与源文件大小不同,所以最初我认为是网络问题。该过程重复尝试每隔几个小时复制一次文件,但从未成功。但是,当我通过Windows资源管理器手动复制文件时,它工作得很好。这似乎排除了network...but,我不是很确定。
我已经搜索了,但没有找到任何与完全相同的问题的帖子。任何帮助都将不胜感激。
谢谢!
添加:
我正在使用这个FileUtils方法:
public static void copyFile(java.io.File srcFile, java.io.File destFile) throws java.io.IOException
发布于 2013-08-30 02:34:20
所以我发现问题出在目标文件夹上。有一个轮询进程,它应该在文件被复制后拾取它。但是,在完成复制之前,正在移动该文件。这可能不会发生在windows驱动器上,因为文件会被锁定(我在本地测试过,在复制文件时无法删除)。但是,目标文件夹是已装载的celerra共享。unix进程在幕后抓取文件……我猜它并不关心某个windows进程是否还在向它写入数据。
感谢您抽出时间来medPhys-pl!
https://stackoverflow.com/questions/18467042
复制相似问题