使用Java复制文件时出现空结果

时间:2012-09-25 07:51:46

标签: java file copy

我正在尝试使用我的应用程序将源文件夹复制到另一个文件夹来“重命名”文件夹。

但是......当我创建目标文件夹时,其中的文件为空(0字节)。 请注意,这只发生在我部署应用程序的linux机器上。 在带有Windows的本地计算机上不会发生。

我试过

Files.copy(src, dest);

并使用输入/输出流创建字节数组

byte[] buffer = new byte[1024];

结果相同。 有什么想法吗?

3 个答案:

答案 0 :(得分:2)

我不确定为什么在Linux机器上出现这个问题,在Linux机器上运行什么VM和Version?

你可能想尝试apache commons-io FileUtils它有copyDirectory方法,让生活变得更容易。

http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html

答案 1 :(得分:1)

如果您要重命名,则必须使用Files.move方法。

但是Files.copy仍然可以正常工作。如果您发布更多代码以找出问题,我会更好。

答案 2 :(得分:0)

它自己的Files.copy仅适用于不适用于目录的文件。

您必须使用Files.walkFileTree

我为此编写了一些实用程序方法(该库是开源的)。

教程: http://softsmithy.sourceforge.net/lib/0.2/docs/tutorial/nio-file/index.html

的Maven:

<dependency>   
    <groupId>org.softsmithy.lib</groupId>   
    <artifactId>softsmithy-lib-core</artifactId>   
    <version>0.2</version>    
</dependency> 

更多信息:

http://puces-blog.blogspot.ch/2012/07/news-from-software-smithy-version-02.html