将文件移动/复制到另一个目录会创建空文件并清空源

时间:2015-12-16 20:23:01

标签: java file copy apache-commons fileutils

我的目标是将文件从一个目录移动到另一个目录。源位于本地驱动器上,目标位于网络驱动器上。无论我是移动还是复制然后删除源都无关紧要。该文件约为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字节。对于我尝试过的所有方法都会发生这种情况,唯一的例外是当我尝试移动时,源文件被删除而不是重写。

所有代码都处于早期开发阶段,请不要评论最佳做法。 谢谢,我错过了什么或者我还能尝试什么?

0 个答案:

没有答案