如何使用 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 中有一些方法可以帮助您。
示例:
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)。
我想将文件(图像)从一个文件夹移动到另一个文件夹:
例如:
/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 中有一些方法可以帮助您。
示例: 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)。