Java 如何更改文件位置的文件扩展名

Java 如何更改文件位置的文件扩展名,java,Java,我有一个用户上传文件的应用程序 但是我想要的是检测上传文件的文件扩展名,如果一个doc文件做了其他事情,则什么也不做 有人有什么想法吗 是否有方法更改文件扩展名?例如,是否有文件was D:/test.doc更改为D:/test.pdf 我知道这不会转换文件格式,这将在以后完成 文件位置每次都会更改,所以我只需要一种方法来获取位置,并更改文件扩展名 我目前拥有的代码 File file = new File("oldname"); File file2 = new File("newname"

我有一个用户上传文件的应用程序

但是我想要的是检测上传文件的文件扩展名,如果一个doc文件做了其他事情,则什么也不做

有人有什么想法吗


是否有方法更改文件扩展名?例如,是否有文件was D:/test.doc更改为D:/test.pdf

我知道这不会转换文件格式,这将在以后完成

文件位置每次都会更改,所以我只需要一种方法来获取位置,并更改文件扩展名

我目前拥有的代码

File file = new File("oldname");

File file2 = new File("newname");
// Rename file (or directory)
boolean success = file.renameTo(file2);
if (!success)
{
// File was not successfully renamed
}
但这并不能做到:( 这段代码的问题是我必须给出新的文件名,我不能,因为它应该与旧的文件名完全相同,只是扩展名不同

编辑2

希望这能澄清问题,因为最后一个问题有点让人困惑

基本上,我有一个程序可以将上传的文档文件转换为pdf,但是上传文档的位置每次都会改变,因为它会为每个用户创建一个文件夹

这在变量
字符串位置中定义

我想做的是将这个变量
location
作为一个
.doc
结束,我想将
位置
.doc
更改为
.pdf

我已通过以下方式找到了文件名,但没有扩展名:

        String path = location;
        File f = new File(path);
        System.out.println(f.getName()); 
        String fName = f.getName();
        System.out.println(fName.substring(0, fName.lastIndexOf('.')));
但是,如何在文件名之前找到路径

这是我最后一次找到解决方案

 System.out.println(path2.substring(0, path2.lastIndexOf('.')));
            newLocation = (path2.substring(0, path2.lastIndexOf('.')))+".pdf";
            System.out.println(newLocation);

您只需通过字符串匹配检查扩展名,例如
endsWith()


要找出文件名之前的路径,请在绝对路径上使用lastIndexof(\”)。

如果需要检查上传文件的文件扩展名,我建议使用幻数

您可以找到更多详细信息


检查扩展名,如.doc或.pdf,并不意味着此文件是word文档或pdf文档文件。

fileName.endsWith(“.doc”)?哦,好的,我真的不认为这很容易,谢谢!有没有办法更改文件扩展名,例如,有一个文件是D:/test.doc,改为D:/test.pdf
file.rename()
?你不认为你可以自己找到这个吗?谷歌是你的朋友。javadoc也是。啊,对不起,我应该说,文件名和位置每次都会改变,我只需要删除结尾处的.doc并用.pdf替换它。我在谷歌上搜索过这个,但它只是显示了如果你知道回答问题的输出路径,该怎么做还有一个问题吗?我想弄清楚他是否在问别的问题。那么,这是评论的恰当用法,而不是答案