Java - Скопировать файл в другой каталог, используя FileUtils и copyFileToDirectory - не работает -? - PullRequest
9 голосов
/ 11 февраля 2012

Я хотел бы скопировать файл из одного каталога в другой, используя Java и классы FileUtils в Apache Org Commons.

Я написал быструю 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) {
        }
    }

}

Ответы [ 3 ]

10 голосов
/ 11 февраля 2012

Воспроизведена ваша ошибка, и она завершается ошибкой только тогда, когда программа не имеет разрешения на запись в папку назначения. Даже перехват броска и печать трассировки стека не показывает никакой информации, а метод довольно тихий ... если папка не существует, метод создает ее так, что игнорирует возможное исправление.

Проверка разрешений на запись в папку назначения

3 голосов
/ 11 февраля 2012

Никогда не стоит делать исключения из ласточки.Выполните e.printstacktrace() в вашем механизме обработки исключений для получения дополнительной информации.Поскольку вы не указали никакой другой информации, первое, что приходит на ум, это то, что если вы используете Windows Vista или более позднюю версию, обычно она запрашивает согласие администратора при размещении элементов непосредственно в каталоге C:\.

Чтобы увидеть, если это проблема, я бы порекомендовал вам проверить это в других каталогах, таких как My Documents или отключить UAC.

1 голос
/ 11 февраля 2012

Do

destDir.mkdirs();

или

FileUtils.forceMkdir(destDir);

сначала создать каталог temp2.

...