1

我对重命名 java 文件有疑问...我的应用程序必须重命名传入的文件,即 mdb、dbf、xls、xml 等。格式。我使用了以下源代码。

例如:

String filename = "D:/sample.mdb";
File filediriden = new File(filename);
String[] filetype = filename.split("\\.");
System.out.println("Filetype :"+filetype[1]);
String newfilename = "D:/new."+filetype[1];
File newfilediriden = new File(newfilename);
System.out.println("New File Name "+newfilename);
boolean rename = filediriden.renameTo(newfilediriden);
if(rename)
   System.out.println("File Renamed");
if(filediriden.isFile()){
    System.out.println("filename" + filediriden.getName());
}else{
    System.out.println("not a filename");
}

OUTPUT:
Filetype  : mdb
New File Name D:/new.mdb
File Renamed
not a filename

之后我检查了它是否是一个文件,但它没有进入那个......帮助请......

4

2 回答 2

3
boolean rename = filediriden.renameTo(newfilediriden);
if(filediriden.isFile()){

重命名文件后,旧的 File 对象 ( filediriden ) 仍指向旧名称,该名称不再存在。您想使用新的 File 对象 ( newfilediriden ) 进行检查。

filetype[1]

此外,文件中可能包含多个点,因此filetype[filetype.length-1]可能更安全。

于 2009-01-12T09:18:44.420 回答
1

问题是您正在检查 filedirden 而不是 newfiledirden。
在测试点,filedirden 不再存在,因为它指向的文件已被重命名。

于 2009-01-12T09:19:11.503 回答