2012-04-03 241 views
-1

在我的应用程序中有一个文件可用
one.pdf。我想在相同的目录中将文件名改为two.pdf
我尝试使用不工作的Java。重命名文件

File f1=new File("E:\\one.pdf"); 
File f2=new File("E:\\two.pdf"); 
f1.renameTo(f2); 
+2

什么类型的错误? – 2012-04-03 11:41:44

+2

你会得到什么错误?请更具体请 – 2012-04-03 11:41:48

+0

可能是你已经在同一目录中有这个名字的文件..(two.pdf) – Kayser 2012-04-03 11:45:30

回答

2

代码有显著错误:

你不检查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(); 
     } 
    } 
} 
0

我不立即看到您的代码的问题,除非这是某种Windows路径事件或权限问题。正如评论中所述,您应该始终显示异常或错误结果。

有一点要考虑会更好地利用现有的File对象重命名该文件在同一目录下:

// someExistingFile defined above 
File destinationFile = new File(someExistingFile.getParentFile(), "two.pdf"); 
someExistingFile.renameTo(destinationFile); 

这将使用现有的文件的目录,并创建新的相对于它的文件。