java - 如何重命名文件名而不改变其类型?

标签 java file-handling

我对重命名 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

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

最佳答案

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

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

filetype[1]

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

关于java - 如何重命名文件名而不改变其类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/434865/

相关文章:

c# - 从流创建虚拟文件路径

c++ - 我应该如何更改此功能以删除 1 个特定条目(姓名和电话号码),而不是整个记录(此功能当前正在执行)?

显示中间结果的java正则表达式

java - 在反序列化方法中,如何找到当前正在反序列化的字段( token )的父级?

java - 如何配置 spring 和 vaadin 将我自己的 bean 注入(inject)到 vaadin View 中?

c - C 语言的文件处理计算

c - 从文件中搜索链接列表

C:在多个线程中使用不同的文件描述符在不同位置打开文件

Java继承概念指的是父类(super class)构造函数吗?

java.lang.ClassCastException : android. app.Application - 类型转换