如何使用 java 将文件移动到另一个文件夹?

How can I move files to another folder with java?

我想将文件(图像)从一个文件夹移动到另一个文件夹:

例如:

/home/folder1/image.png

/home/folder1/folder2/image.png

显然从文件夹 1 中删除图像

我试图通过读取路径然后修改它,或使用 renameTo 来做到这一点,但我做不到。

我希望有人能帮我解决这个问题,谢谢。

编辑:

好吧,我可以放代码,但解释我所做的很简单:

我刚刚创建了一个文件夹 class,其中包含我的文件夹 (/home/folder1) 的文件对象,我读取了里面的所有图像并将其保存在一个文件数组中,然后我扫描它并尝试将每个图像文件字符串的路径更改为另一个

编辑:

感谢大家的帮助,都是很好的例子,我可以将我的文件更改到另一个位置,有一堆文件我想移动,所以我不想创建太多对象.

解决此问题的通常方法是复制文件,然后将其从原始位置删除,但您可以按照此 tutorial 了解更多信息。此外,平台(linux、windows 并不重要)。

我没有运行这个,但它应该有用

File f1 = new File("/home/folder1/image.png");
File f2 = new File("/home/folder1/folder2/image.png");

f1.renameTo(f2);

Commons-io 在 FileUtils class 中有一些方法可以帮助您。

http://commons.apache.org/proper/commons-io/javadocs/api-release/index.html?org/apache/commons/io/package-summary.html

示例: FileUtils.moveFile(源,目标);

你说你试过 renameTo 但它没有用,但这对我有用。重命名后我删除了原来的文件

File a = new File("C:\folderA\A.txt");
a.renameTo(new File("C:\folderB\" + a.getName()));
a.delete();

有很多方法可以做到这一点。 这个片段就是其中之一,你可以这样移动你的文件:

try {
    final File myFile = new File("C:\folder1\myfile.txt");
    if(myFile.renameTo(new File("C:\folder2\" + myFile.getName()))) {
        System.out.println("File is moved successful!");
    } else {
        System.out.println("File is failed to move!");
    }
}catch(Exception e){
    e.printStackTrace();
}

在 java 8+ 中,您可以简单地使用 nio 中的 Files.move

try {
    Path source = Paths.get("/home/folder1/image.png");
    Path dest = Paths.get("/home/folder1/folder2/image.png");
    Files.move(source, dest);
} catch (IOException e) {
    ...
}

路径甚至可以来自不同的文件系统提供商(即 ZipFileSystem)。