這是一個簡單的類來顯示4種情況。 對不起,我的英語(不好)renameTo()不能在Eclipse中工作Helios
public static void main(String[] args) throws IOException {
//TODO De temporal a archivo en directorio
//TODO from file in temporary folder to file in common folder.
File fromTemp_Dir = File.createTempFile("Temp_Dir_FROM", ".temp");
File toTemp_Dir = new File ("Temp_Dir");
BufferedWriter bufferWriterTemp_DirFROM = new BufferedWriter(new FileWriter(fromTemp_Dir));
bufferWriterTemp_DirFROM.write("Temp_Dir_FROM");
bufferWriterTemp_DirFROM.close();
BufferedWriter bufferWriterTemp_DirTO = new BufferedWriter(new FileWriter(toTemp_Dir));
bufferWriterTemp_DirTO.write("Temp_Dir_TO");
bufferWriterTemp_DirTO.close();
System.out.println("fromTemp_Dir exist? "+fromTemp_Dir.exists());
System.out.println("toTemp_Dir exist? "+toTemp_Dir.exists());
toTemp_Dir.delete();
if (!fromTemp_Dir.renameTo(toTemp_Dir)){
System.out.println("rename fail 'De temporal a archivo en directorio'");
}else {
System.out.println("Rename successful 'De temporal a archivo en directorio'");
}
//TODO De archivo a temporal
//TODO from file in common folder to file in temporary folder.
File fromDir_Temp = new File ("Dir_FROM");
File toDir_Temp = File.createTempFile("Dir_Temp_TO", ".temp");
BufferedWriter bufferWriterDir_TempFROM = new BufferedWriter(new FileWriter(fromDir_Temp));
bufferWriterDir_TempFROM.write("Dir_Temp_FROM");
bufferWriterDir_TempFROM.close();
BufferedWriter bufferWriterDir_TempTO = new BufferedWriter(new FileWriter(toDir_Temp));
bufferWriterDir_TempTO.write("Dir_Temp_TO");
bufferWriterDir_TempTO.close();
toDir_Temp.delete();
if (!fromDir_Temp.renameTo(toDir_Temp)){
System.out.println("rename fail 'De archivo en directorio a temporal'");
} else{
System.out.println("rename successful 'De archivo en directorio a temporal'");
}
//TODO De temporal a temporal
//TODO from temporary folder to temporary folder
File fromTemp = File.createTempFile("archivoTempFROM_", ".temp");
File toTemp = File.createTempFile("archivoTempTO_", ".temp");
BufferedWriter bufferWriterFROMTemp = new BufferedWriter(new FileWriter(fromTemp));
bufferWriterFROMTemp.write("archivoTempFROM");
bufferWriterFROMTemp.close();
BufferedWriter bufferWriterTOTemp = new BufferedWriter(new FileWriter(toTemp));
bufferWriterTOTemp.write("archivoTempTO");
bufferWriterTOTemp.close();
toTemp.delete();
if (!fromTemp.renameTo(toTemp)){
System.out.println("rename fail 'De temporal a temporal'");
}else {
System.out.println("Rename successful 'De temporal a temporal'");
}
//TODO De archivo a archivo en directorio
//TODO from file in common directory to file in common directory
File fromDir = new File("archivoDirFROM");
File toDir = new File("archivoDirTO");
BufferedWriter bufferWriterFROMDir = new BufferedWriter(new FileWriter(fromDir));
bufferWriterFROMDir.write("archivoDirFROM");
bufferWriterFROMDir.close();
BufferedWriter bufferWriterTODir = new BufferedWriter(new FileWriter(toDir));
bufferWriterTODir.write("archivoDirTO");
bufferWriterTODir.close();
toDir.delete();
if (!fromDir.renameTo(toDir)){
System.out.println("rename fail 'De archivo a archivo en directorio'");
}else {
System.out.println("Rename successful 'De archivo a archivo en directorio'");
}
}
顯示在我的控制檯
fromTemp_Dir存在嗎? true
toTemp_Dir存在嗎?真正
重命名失敗「德時間一個檔案館連接上級目錄」
重命名失敗「德檔案館連接上級目錄時間」
重命名成功的「德時間時間」
重命名成功的「德檔案館一個檔案館連接上級目錄」
本課程適用於某些PC,但不適用於其他PC(在7臺PC中測試,5個工作,2個不工作),所有安裝的都是ubuntu。
據說這是一個權限問題,但我已經將PC設置爲管理員和root用戶。
我用gksu和sudo嘗試過,但不起作用。
任何解決方案?
謝謝。
可能重複:http://stackoverflow.com/questions/1000183/reliable-file-renameto-alternative-on-windows – DaveJohnston 2011-12-23 12:46:21
我看到這個帖子了,但還沒有解決我的問題。 – 2011-12-23 12:55:24