FileUtils.copyFile () вылетает программа при попытке скопировать exe - PullRequest
0 голосов
/ 11 февраля 2020

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

        public void createUSBButtonAction() throws IOException {

                for(Object obj: programList.getItems()){

                    File src = new File("C:\\Users\\JohnsonL\\Desktop\\flashTranserProj\\flashTransferProj\\src\\sample\\Installers\\" + obj.toString());
                    File dst = new File("D:/Test/" + obj.toString());
                    System.out.println(dst.getUsableSpace());
                    FileUtils.copyFile(src, dst);
            }

Работает нормально, пока я не скопирую exe-файл. Когда я это делаю, программа перестает отвечать, и появляется сообщение о том, что JDK перестал работать и не выдает мне ошибок.

Если мне придется переключиться на другую форму копирования файлов, я буду, но я хотел бы придерживаться FileUtils

Ответы [ 2 ]

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

Скорее всего, это вызвано вашей операционной системой, так как вы находитесь на Windows. Возможно, антивирус или системная политика не позволяют копировать исполняемые файлы по пути D:\.

FileUtils.copyFile() - это просто операция копирования, которая обычно используется FileChannel. Он не будет обрабатывать файлы по-разному в зависимости от их расширения или типа, поскольку он только читает и записывает байты.

0 голосов
/ 13 февраля 2020

Копирование файла заняло слишком много времени, поэтому остальная часть программы не смогла скопировать файл. Я исправил это, скопировав файл в другой поток.

...