2012-04-03 236 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); 

這將使用現有的文件的目錄,並創建新的相對於它的文件。