重命名文件,同时保留java中的文件扩展名

问题描述:

如何通过保留文件扩展名来重命名文件?重命名文件,同时保留java中的文件扩展名

在我的情况下,我想重新命名文件,同时上传它。我正在使用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公共文件上传库?

尽量拆分,并采取只扩展的分裂:

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]); 
} 

BONUS - CLICK ME