11

Java と apache org commons の FileUtils クラスを使用して、あるディレクトリから別のディレクトリにファイルをコピーしたいと考えています。

ローカル システムでテストする簡単な Java プログラムを作成しました。これがコードです。ファイルは存在しますが、別のディレクトリへのファイルのコピーが機能していません。私は何が欠けていますか?どこかに不適切な構文がありますか?

import org.apache.commons.io.FileUtils;
import java.io.File;

class MoveFile {

    public static void main(String[] args) {
        MoveFile myobj = new MoveFile();
        myobj.moveTheFile();
    }

    public void moveTheFile () {
        try {
            File destDir = new File("C:\\Folder1\\temp2");
            File srcFile = new File("C:\\Folder1\\temp\\card.png");
            FileUtils.copyFileToDirectory(srcFile, destDir);
        } catch(Exception e) {
        }
    }

}
4

3 に答える 3

10

エラーを複製しましたが、プログラムが宛先フォルダーに書き込む権限を持っていない場合にのみ失敗します。スロー可能なスタックトレースをキャッチしても情報は表示されず、メソッドは非常に静かです...フォルダーが存在しない場合、メソッドはフォルダーを作成するため、可能な修正は無視されます。

コピー先フォルダの書き込み権限を確認してください

于 2012-02-10T22:23:41.127 に答える
3

例外を飲み込むことは決して良い考えではありません。e.printstacktrace()詳細については、例外処理メカニズムで実行してください。他の情報を指定しなかったので、最初に頭に浮かぶのは、Windows Vista 以降を使用している場合、通常、アイテムをC:\ディレクトリに直接配置するときに管理者の同意を求めることです。

これが問題かどうかを確認するにはMy Documents、UAC を無効にするか、他のディレクトリでこれをテストすることをお勧めします。

于 2012-02-10T22:05:35.000 に答える
1

行う

destDir.mkdirs();

また

FileUtils.forceMkdir(destDir);

temp2最初にディレクトリを作成します。

于 2012-02-10T22:22:43.110 に答える