FileUtils.copyFile() 在尝试复制 exe 时使程序崩溃

FileUtils.copyFile() crashes the program when trying to copy an exe

我一直在尝试许多不同的选项来复制 Java 中的文件,并且 none 一直有效。当我认为我发现真正的问题时,我使用的是 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

这很可能是由您的操作系统引起的,因为您使用的是 Windows。可能是防病毒软件或系统策略阻止了将可执行文件复制到 D:\ 路径。

FileUtils.copyFile() 只是一个复制操作,在后台通常使用 FileChannel。它不会根据文件的扩展名或类型以不同方式处理文件,因为它只读取和写入字节。

文件复制花费的时间太长,因此它停止了程序的其余部分来复制文件。我通过将文件复制到另一个线程来修复此问题。