2011-02-01 92 views
0
File file= new File("C:\\Documents and Settings\\Administrator\\Desktop\\ajay\\abc.csv"); 
Timestamp ts=new Timestamp(new Date().getTime()); 
String str= ts.toString(); 
String st="C:\\Documents and Settings\\Administrator\\Desktop\\ajay\\abc\\"+str+".csv"; 
System.out.println(new Date().getTime()); 
boolean b=file.renameTo(new File(st)); 
System.out.println(b); 

在這段代碼片段中,我嘗試重命名文件,但是我無法找到它中的錯誤。在java中重命名文件

+5

所以我們都在。你會得到什麼錯誤?你有沒有嘗試過使用File.exists()和其他方法來理智地檢查你的程序在做什麼? – 2011-02-01 10:49:47

+0

請使用代碼{}標記,並提供運行此代碼時得到的錯誤。 – 2011-02-01 10:49:55

+0

錯誤在於b的值爲false,這意味着文件未被重命名。 – 2011-02-01 10:52:40

回答

4

是不是getTime().toString()會返回帶冒號的字符串?這在文件名中是非法的。

1

你可以從字符串用這種方法去除冒號例如:

 String time = "12:12:12"; 
     String time2 = time.replace(":", ""); 

輸出是:121212

1

我會使用類似

final File file= new File("C:\\Documents and Settings\\Administrator\\Desktop\\ajay\\abc.csv"); 
final Calendar cal = Calendar.getInstance(); 
cal.setTime(new Date()); 
final StringBuilder str = new StringBuilder(); 
str.append(cal.get(Calendar.YEAR)); 
str.append(cal.get(Calendar.MONTH)); 
str.append(cal.get(Calendar.DATE)); 
final String st="C:\\Documents and Settings\\Administrator\\Desktop\\ajay\\abc"+str+".csv"; 
System.out.println(new Date().getTime()); 
final boolean b = file.renameTo(new File(st)); 
System.out.println(b);