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

时间:2013-04-18 20:31:41

标签: java

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

但我想要的是检测上传文件的文件扩展名,如果doc文件做了别的什么都不做

有人有什么想法吗?

有没有办法更改文件扩展名,例如文件是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

希望这会清除它,因为最后一个问题有点令人困惑

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

这是在变量String location

中定义的

我想要做的是接受此变量location,因为这将以.doc结束,我想将location.doc更改为.pdf }

我设法通过使用:

找到文件的名称,没有hte扩展名
        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);

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

您可以找到更多详细信息here

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

相关问题