2011-02-01 59 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);