我的目标是将文件从一个目录移动到另一个目录。源位于本地驱动器上,目标位于网络驱动器上。无论我是移动还是复制然后删除源都无关紧要。该文件约为6GB。
我尝试过的事情:
// C:\path\to\dir\file.bak
File source = new File(localRoot + backup);
// \\192.168.1.100\path\to\dir\file.bak
File dest = new File(storageRoot + "/" + storagePath + "/" + backup);
try {
log("Copying");
// I've tried copyFile as well.
FileUtils.copyFileToDirectory(source, dest);
log("copied");
} catch (Exception e) {
e.printStackTrace();
}
File source = new File(localRoot + backup);
File dest = new File(storageRoot + "/" + storagePath + "/" + backup);
try {
log("Copying");
// I've tried move and creating Paths instead of Files as well.
Files.copy(source.toPath(), dest.toPath());
log("copied")
} catch (Exception e) {
e.printStackTrace();
}
我尝试过使用Input,OutputStreams和读取字节的手动方法。
结果是在目标中创建了一个文件,文件名正确,为0字节,源文件从6GB重写为0字节。对于我尝试过的所有方法都会发生这种情况,唯一的例外是当我尝试移动时,源文件被删除而不是重写。
所有代码都处于早期开发阶段,请不要评论最佳做法。 谢谢,我错过了什么或者我还能尝试什么?