あるディレクトリから別のディレクトリにファイルを移動しようとしたときにエラーが発生したプログラム。多くのデバッグを行った後、あるディレクトリから別のディレクトリにファイルを移動するだけの小さなユーティリティ プログラムを作成して、エラーを特定しました (以下のコード)。ローカル ファイル システム上でのファイルの移動は正常に機能しますが、ファイルを別のファイル システムに移動しようとすると失敗することが判明しました。
どうしてこれなの?質問はプラットフォーム固有のものかもしれません - それが重要な場合、私たちは ext3 で Linux を実行しています。
2 番目の質問です。クラスのrenameTo()
メソッド以外のものを使用する必要がありましたか? File
これはローカルファイルシステムでのみ機能するようです。
テスト (ルートとして実行):
touch /tmp/test/afile
java FileMover /tmp/test/afile /root/
The file move was successful
touch /tmp/test/afile
java FileMover /tmp/test/afile /some_other_disk/
The file move was erroneous
コード:
import java.io.File;
public class FileMover {
public static void main(String arguments[] ) throws Exception {
boolean success;
File file = new File(arguments[0]);
File destinationDir = new File(arguments[1]);
File destinationFile = new File(destinationDir,file.getName() );
success = file.renameTo(destinationFile);
System.out.println("The file move was " + (success?"successful":"erroneous"));
}
}