我想将文件140103122005+0530_Penguins.jpg
重命名为Penguins.jpg
来自同一目录。
我已经尝试了renameTo()
但它无法正常工作,它需要目标文件,我没有目标文件。
任何人都可以告诉我如何使用Java从同一目录重命名相同的文件。
答案 0 :(得分:6)
请仔细阅读renameTo java doc。它需要抽象目标文件对象(这并不一定意味着该文件必须存在于您的系统上)。它只是关于系统上目标文件的renameTo()方法的指示器。 File documentation明确指出文件对象是文件或目录的抽象表示(实际文件可能存在也可能不存在)。
以下是供参考的java代码段:
// This file to be renamed (must exist on your system)
File source = new File("c:/140103122005+0530_Penguins.jpg");
if(source.exists()) {
// Abstract file path (does not exist)
File destination = new File ("c:/Penguins.jpg");
// rename the source file
source.renameTo(destination);
}
答案 1 :(得分:1)
这是一个例子
import java.io.*;
public class file {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File f=new File("140103122005+0530_Penguins.jpg");
f.renameTo(new File("Penguins.jpg"));
}
}
remaneTo
会返回boolean
,所以如果您想检查其他文件是否已重命名,请执行System.out.println(f.renameTo(new File("Penguins.jpg"));
如果您成功,则重命名文件
答案 2 :(得分:0)
也许你做错了什么。它应该是
boolean success = new File("1").renameTo(new File("2"));
请注意,根据javadoc,它可能无法将文件从一个文件系统移动到另一个文件系统,如果具有目标抽象路径名的文件已存在,则可能无法成功。 renameTo取决于平台。
从Java 7开始,建议使用与平台无关的java.nio.file.Files.move
方法
答案 3 :(得分:0)
还要检查 File.renameTo 方法的返回参数是否成功重命名。文件重命名操作取决于平台,可能不会一直成功。