web-dev-qa-db-ja.com

Java-FileUtilsとcopyFileToDirectoryを使用してファイルを別のディレクトリにコピーする-動作しない-?

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) {
        }
    }

}
10
katura

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

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

10
Alfabravo

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

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

3
npinti

行う

destDir.mkdirs();

または

FileUtils.forceMkdir(destDir);

ディレクトリを作成するにはtemp2 最初。

1
Joop Eggen