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

时间:2015-01-13 21:03:01

标签: java file

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

例如:

  

/home/folder1/image.png

  

/home/folder1/folder2/image.png

显然从folder1

中删除图像

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

我希望有人可以帮我一点,谢谢。

编辑:

我可以把代码放进去,但解释我做的很简单:

我刚刚创建了一个Folder类,其中包含我的文件夹的File对象(/ home / folder1),我读取了里面的所有图像并将其保存在File数组中,然后我扫描它并尝试更改每个image file String to another

编辑:

感谢大家的帮助,所有这些都是很好的例子,我能够将我的文件更改为另一个位置,有一堆我想移动的文件,所以我不想创建太多的对象。 / p>

6 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

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

实施例: FileUtils.moveFile(src,dest);

答案 3 :(得分:1)

我没有运行它,但应该可以运行

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

f1.renameTo(f2);

答案 4 :(得分:1)

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

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();
}

答案 5 :(得分:0)

在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)。