我想将文件(图像)从文件夹移动到另一个文件夹:
例如:
/home/folder1/image.png
到
/home/folder1/folder2/image.png
显然从folder1
中删除图像我试图通过阅读路径,然后修改它,或使用renameTo来做到这一点,但我不能这样做。
我希望有人可以帮我一点,谢谢。
编辑:
我可以把代码放进去,但解释我做的很简单:
我刚刚创建了一个Folder类,其中包含我的文件夹的File对象(/ home / folder1),我读取了里面的所有图像并将其保存在File数组中,然后我扫描它并尝试更改每个image file String to another
编辑:
感谢大家的帮助,所有这些都是很好的例子,我能够将我的文件更改为另一个位置,有一堆我想移动的文件,所以我不想创建太多的对象。 / p>
答案 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类中有一些方法可以帮助你。
实施例: 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)。