Как переименовать имя файла без изменения его типа? - PullRequest
1 голос
/ 12 января 2009

Я сомневаюсь в переименовании 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

После этого я проверил, является ли это файл или нет, но это не входит в это ... Помогите плз ...

Ответы [ 2 ]

3 голосов
/ 12 января 2009
boolean rename = filediriden.renameTo(newfilediriden);
if(filediriden.isFile()){

После переименования файла старый объект File ( filediriden ) все еще указывает на старое имя, которого больше не существует. Вы хотите проверить, используя новый объект File ( newfilediriden ).

filetype[1]

Кроме того, могут быть файлы, содержащие более одной точки, поэтому, возможно, filetype [filetype.length-1] безопаснее.

1 голос
/ 12 января 2009

Проблема в том, что вы проверяете filedirden вместо newfiledirden.
На момент проверки filedirden больше не существует, так как файл, на который он указывает, был переименован.

...