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 に答える