1

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

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

我试过了

Files.copy(src, dest);

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

byte[] buffer = new byte[1024];

结果相同。有任何想法吗?

4

3 回答 3

2

我不知道为什么Linux机器上会出现这个问题,Linux机器上运行的是什么VM和版本?

你可能想试试 apache commons-io FileUtils 它有 copyDirectory 方法,让生活更轻松。

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

于 2012-09-25T07:57:14.997 回答
1

如果您尝试重命名,那么您必须使用该方法Files.move

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

于 2012-09-25T07:58:47.477 回答
0

它本身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

于 2012-09-25T08:11:44.943 回答