我正在尝试使用我的应用程序将源文件夹复制到另一个文件夹来“重命名”一个文件夹。
但是......当我创建目标文件夹时,其中的文件是空的(0字节)。请注意,这只发生在我部署应用程序的 linux 机器上。不会在我的本地计算机上使用 Windows 发生。
我试过了
Files.copy(src, dest);
并使用输入/输出流创建字节数组
byte[] buffer = new byte[1024];
结果相同。有任何想法吗?
我不知道为什么Linux机器上会出现这个问题,Linux机器上运行的是什么VM和版本?
你可能想试试 apache commons-io FileUtils 它有 copyDirectory 方法,让生活更轻松。
http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html
如果您尝试重命名,那么您必须使用该方法Files.move
。
但仍然Files.copy
应该可以正常工作。如果您发布更多代码以找出问题,我会更好。
它本身Files.copy
仅适用于文件而不适用于目录。
你必须使用Files.walkFileTree
.
我为此编写了一些实用方法(该库是开源的)。
教程: http ://softsmithy.sourceforge.net/lib/0.2/docs/tutorial/nio-file/index.html
马文:
<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