在Java中重命名文件并保留文件扩展名

3

如何保留文件扩展名重命名文件?

在我的情况下,我想要上传文件时重命名文件。我正在使用Apache commons fileupload库。

以下是我的代码片段:

File uploadedFile = new File(path + "/" + fileName);

item.write(uploadedFile);
//renaming uploaded file with unique value.          
String id = UUID.randomUUID().toString();
File newName = new File(path + "/" + id);
if(uploadedFile.renameTo(newName)) {

} else {
    System.out.println("Error");
}

上述代码也会更改文件扩展名。如何保留它? 是否有使用apache commons file upload库的好方法?
1个回答

2

尝试拆分并仅获取扩展名的拆分部分:

String[] fileNameSplits = fileName.split("\\.");
// extension is assumed to be the last part
int extensionIndex = fileNameSplits.length - 1;
// add extension to id
File newName = new File(path + "/" + id + "." + fileNameSplits[extensionIndex]);

一个例子:
public static void main(String[] args){
    String fileName = "filename.extension";
    System.out.println("Old: " + fileName);
    String id = "thisIsAnID";
    String[] fileNameSplits = fileName.split("\\.");
    // extension is assumed to be the last part
    int extensionIndex = fileNameSplits.length - 1;
    // add extension to id
    System.out.println("New: " + id + "." + fileNameSplits[extensionIndex]);
}

奖励 - 点我

(注:链接为英文)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接