我正在尝试使用我的应用程序将源文件夹复制到另一个文件夹来“重命名”文件夹。
但是......当我创建目标文件夹时,其中的文件为空(0字节)。 请注意,这只发生在我部署应用程序的linux机器上。 在带有Windows的本地计算机上不会发生。
我试过
Files.copy(src, dest);
并使用输入/输出流创建字节数组
byte[] buffer = new byte[1024];
结果相同。 有什么想法吗?
答案 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