在我的應用程序中有一個文件可用
說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