【问题标题】:Unable to copy files using FileUtils无法使用 FileUtils 复制文件
【发布时间】:2016-12-15 16:16:57
【问题描述】:

我正在尝试将文件从一个目的地复制到另一个目的地。我无法理解为什么会发生错误。任何帮助表示赞赏。

public class FileSearch {

    public void findFiles(File root) throws IOException {

        File[] listOfFiles = root.listFiles();
        for (int i = 0; i < listOfFiles.length; i++) {
            String iName = listOfFiles[i].getName();
            if (listOfFiles[i].isFile() && iName.endsWith(".tif")) {
                long fileSize = listOfFiles[i].length();

                long sizeToKb = fileSize/1024;

                File copyDest = new File("C:\\Users\\username\\Desktop\\ZipFiles");

                if (fileSize <= 600000) {
                    System.out.println("|" + listOfFiles[i].getName().toString() + " | Size: " + sizeToKb+" KB");
                    FileUtils.copyFile(listOfFiles[i], copyDest);
                }

            } else if (listOfFiles[i].isDirectory()) {
                findFiles(listOfFiles[i]);
            }
        }
    }

我收到以下错误Exception in thread "main" java.io.IOException: Destination 'C:\Users\username\Desktop\ZipFiles' exists but is a directory

【问题讨论】:

  • ZipFiles 是一个目录吗?是否要访问该文件夹中的所有文件?
  • 那个错误信息很清楚问题是什么......
  • copyFile 接受一个文件位置和一个文件目标,其中文件目标是新文件的绝对路径。
  • @AshishSrivastava ZipFIles 文件夹中的文件应该可以访问。

标签: java apache-commons-io


【解决方案1】:
File srcFile = new File("/path/to/src/file.txt");  // path + filename     
File destDir = new File("/path/to/dest/directory"); // path only
FileUtils.copyFileToDirectory(srcFile, destDir);

试试copyFileToDirectory(srcFile, destDir),你必须提供源文件的绝对路径和文件名,以及目标目录的绝对路径。

此外,请确保您具有将文件复制到目标的写入权限。我一直在 Linux 系统上不知道如何实现,同样你应该在 Windows 上具有管理员权限或一些能够写入文件的类似角色。

【讨论】:

    【解决方案2】:

    你想要FileUtils.copyFileToDirectory(srcFile, destDir)

    为什么会出现错误? FileUtils.copyFile 用于将文件复制到新位置。来自文档:

    此方法将指定源文件的内容复制到指定的目标文件。如果保存目标文件的目录不存在,则创建该目录。如果目标文件存在,则此方法将覆盖它。

    这里,目的地存在,但不是文件;而是一个目录。您不能用文件的内容覆盖目录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 2021-07-10
      • 2013-04-20
      • 1970-01-01
      • 2013-05-29
      • 2014-08-06
      • 2018-08-15
      相关资源
      最近更新 更多