【问题标题】:How to copy files from one folder to another using Java?如何使用 Java 将文件从一个文件夹复制到另一个文件夹?
【发布时间】:2015-05-26 04:41:24
【问题描述】:

如何使用 java 将文件从一个文件夹复制到另一个文件夹?我尝试过使用

org.apache.commons.io.FileUtils.copyFileToDirectory(pasteItem, destinationPath);

如果目标文件夹不包含同名文件,则此方法有效。如果我尝试将文件粘贴到文件夹中,它会引发 IOException。但是,有没有办法处理这个问题?可能我只想将名称自动重命名为 pasteItem(1) 或类似名称的文件粘贴。请提出建议。

事实上,如果同名文件已经存在,我会为该文件取一个新名称。我不知道如何复制文件然后重命名。如果我先重命名然后复制,我会丢失原始文件。如果我尝试先复制文件,那么它会给出一个异常,说同名文件已经存在!

【问题讨论】:

  • 您可以使用Files.copy(src, dst, StandardCopyOption.REPLACE_EXISTING);替换目的地
  • @KennethClark 替换文件不是我想要的。我需要复制并保留这两个文件
  • file.exists() 方法会告诉您文件是否存在于目标中,您可以执行 Windows 所做的操作并使用计数器将 (1) 附加到名称中。递增计数器,直到文件不存在。
  • 如何在复制文件之前附加 (1) 是我的问题 :) 请检查问题的已编辑部分..

标签: java file


【解决方案1】:

您可以使用 Java.io.File 类。 它有一个检查填充是否存在的方法。

例子:

//create files
File original =new File("C:\\test\\testfile.txt");
File destination =new File("D:\\test\\file.txt");
//check if file exists.
for(int x=0;destination.exists()==true;x++){
//if file exists then add 1 to file name and check if exists again.
destination=new File("D\\test\\file"+x+".txt");

}
//copy file.
Files.copy(origional, destination, StandardCopyOption.REPLACE_EXISTING);

【讨论】:

    【解决方案2】:

    这个方法有一个重载版本,它使用一个布尔标志,如果为真,它将覆盖目标文件。

    public static void copyFileToDirectory(File srcFile,
                       File destDir,
                       boolean preserveFileDate)
                                throws IOException
    

    http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html#copyFileToDirectory(java.io.File, java.io.File, boolean)

    【讨论】:

    • FileUtils.copyFileToDirectory(Clipboard.getSystemClipboard().getFiles().get(0), destinationPath, true);我正在使用它,但出现错误。 java.io.IOException: 源 'E:\Workspace\02-TestRepository\TestScript\6\2.json' 和目标 'E:\Workspace\02-TestRepository\TestScript\6\2.json' 相同跨度>
    • @naveenbharadwaj 为什么要尝试将文件复制到自身上?这没有任何意义,对吧?
    • 我没有将文件复制到文件中。源是 E:\Workspace\02-TestRepository\TestScript\6\2.json。目的地是 E:\Workspace\02-TestRepository\TestScript\6。我在调试模式下检查了它。但是,在 copyToDirectory 中调用了 copyFile 函数并引发此错误。我不知道为什么
    【解决方案3】:

    请参考此站点将文件从一个文件夹复制到另一个文件夹。 http://www.mkyong.com/java/how-to-move-file-to-another-directory-in-java/

    我不确定是否要自动重命名文件

    【讨论】:

      猜你喜欢
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 2015-04-27
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 2011-08-22
      相关资源
      最近更新 更多