如何将文件从一个位置移动到另一个位置在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
),但为了保持代码的可移植性,一般的方法是:
- 将源文件读入内存
- 将内容写入新位置的文件
- 删除源文件
只要源位置和目标位置在同一个卷上, 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
对象
了解更多关于文件