如何将文件从一个位置移动到另一个位置在Java?

我的问题如何将文件从一个位置移动到另一个位置。 当我运行我的程序在该位置创build的任何文件,它会自动移动到指定的位置,以及如何知道哪个文件被移动?

提前致谢..

myFile.renameTo(new File("/the/new/place/newName.file")); 

文件#renameTo这样做(它不能只重命名,但也可以在目录之间移动,至less在同一个文件系统上)。

重命名由此抽象path名表示的文件。

这种方法的许多方面的行为本质上是依赖于平台的:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是primefaces的,如果一个文件具有目标抽象path名已经存在。 应始终检查返回值,以确保重命名操作成功。

如果您需要更全面的解决scheme(例如想要在磁盘之间移动文件),请查看Apache Commons FileUtils#moveFile

使用Java 7或更新版本,您可以使用Files.move(from, to, CopyOption... options)

例如

 Files.move(Paths.get("/foo.txt"), Paths.get("bar.txt"), StandardCopyOption.REPLACE_EXISTING); 

有关更多详细信息,请参阅文档文档

要移动文件,您也可以使用Jakarta Commons IO FileUtils.moveFile

错误时抛出一个IOException ,所以当没有exception抛出时,你就知道文件被移动了。

来自Java IO的File.renameTo可用于移动Java中的文件。 也看到这个问题 。

您可以执行该任务的外部工具(如在Windows环境中copy ),但为了保持代码的可移植性,一般的方法是:

  1. 将源文件读入内存
  2. 将内容写入新位置的文件
  3. 删除源文件

只要源位置和目标位置在同一个卷上, File#renameTo就会工作。 就个人而言,我会避免使用它来移动文件到不同的文件夹。

只需添加源文件夹和目标文件夹path。

它会将所有文件和文件夹从源文件夹复制到目标文件夹。

  File destinationFolder = new File(""); File sourceFolder = new File(""); if (!destinationFolder.exists()) { destinationFolder.mkdirs(); } // Check weather source exists and it is folder. if (sourceFolder.exists() && sourceFolder.isDirectory()) { // Get list of the files and iterate over them File[] listOfFiles = sourceFolder.listFiles(); if (listOfFiles != null) { for (File child : listOfFiles ) { // Move files to destination folder child.renameTo(new File(destinationFolder + "\\" + child.getName())); } // Add if you want to delete the source folder sourceFolder.delete(); } } else { System.out.println(sourceFolder + " Folder does not exists"); } 

尝试这个 :-

  boolean success = file.renameTo(new File(Destdir, file.getName())); 
 Files.move(source, target, REPLACE_EXISTING); 

您可以使用Files对象

了解更多关于文件