在我的应用程序中有一个文件可用
说one.pdf。我想在相同的目录中将文件名改为two.pdf。
我尝试使用不工作的Java。重命名文件
File f1=new File("E:\\one.pdf");
File f2=new File("E:\\two.pdf");
f1.renameTo(f2);
在我的应用程序中有一个文件可用
说one.pdf。我想在相同的目录中将文件名改为two.pdf。
我尝试使用不工作的Java。重命名文件
File f1=new File("E:\\one.pdf");
File f2=new File("E:\\two.pdf");
f1.renameTo(f2);
代码有显著错误:
你不检查File#renameTo()结果。如果您激活了UAC或目标无效,重命名可能会失败。
public class Rename {
public static void main(String[] args) {
File f1=new File("c:\\tools\\one.pdf");
File f2=new File("c:\\tools\\two.pdf");
try{
boolean result = f1.renameTo(f2);
System.out.println("worked? " + result);
}catch (Exception e){
e.printStackTrace();
}
}
}
我不立即看到您的代码的问题,除非这是某种Windows路径事件或权限问题。正如评论中所述,您应该始终显示异常或错误结果。
有一点要考虑会更好地利用现有的File
对象重命名该文件在同一目录下:
// someExistingFile defined above
File destinationFile = new File(someExistingFile.getParentFile(), "two.pdf");
someExistingFile.renameTo(destinationFile);
这将使用现有的文件的目录,并创建新的相对于它的文件。
什么类型的错误? – 2012-04-03 11:41:44
你会得到什么错误?请更具体请 – 2012-04-03 11:41:48
可能是你已经在同一目录中有这个名字的文件..(two.pdf) – Kayser 2012-04-03 11:45:30