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

发布于 2024-07-11 19:47:15 字数 816 浏览 4 评论 0原文

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

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

I have doubt in renaming java files... My application has to rename the incoming file which is mdb,dbf,xls,xml,etc. format. I used the following source code.

eg:

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

After that I checked whether its a file or not but its not going into that...Help plz...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尘曦 2024-07-18 19:47:15
boolean rename = filediriden.renameTo(newfilediriden);
if(filediriden.isFile()){

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

filetype[1]

另外,可能存在包含多个点的文件,因此也许 filetype[filetype.length-1] 更安全。

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

After you rename the file, the old File object (filediriden) still points to the old name, which no longer exists. You want to check using the new File object (newfilediriden).

filetype[1]

Also, there could be files with more than one dot in them, so maybe filetype[filetype.length-1] is safer.

雪化雨蝶 2024-07-18 19:47:15

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

The problem is you're checking the filedirden instead of newfiledirden.
At the point of test, filedirden doesn't exist anymore, as the file it points to was renamed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文