如何在 Java 中运行时更改文件扩展名
2022-09-02 12:35:40
我正在尝试实现程序来压缩和解压缩文件。我想做的就是压缩一个文件名为文件名的文件(fileName.fileExtension.zip并在解压缩时再次将其更改为fileName.fileExtension。
我正在尝试实现程序来压缩和解压缩文件。我想做的就是压缩一个文件名为文件名的文件(fileName.fileExtension.zip并在解压缩时再次将其更改为fileName.fileExtension。
这就是我过去重命名文件或更改其扩展名的方式。
public static void modify(File file)
{
int index = file.getName().lastIndexOf(".");
//print filename
//System.out.println(file.getName().substring(0, index));
//print extension
//System.out.println(file.getName().substring(index));
String ext = file.getName().substring(index);
//use file.renameTo() to rename the file
file.renameTo(new File("Newname"+ext));
}
编辑:John的方法重命名文件(保留扩展名)。要更改扩展名,请执行以下操作:
public static File changeExtension(File f, String newExtension) {
int i = f.getName().lastIndexOf('.');
String name = f.getName().substring(0,i);
return new File(f.getParent(), name + newExtension);
}
这只会将最后一个扩展名更改为文件名,即 的一部分。因此,它适用于Linux隐藏文件,其名称以a开头这是非常安全的,因为如果返回(即在父级是系统根的情况下),它将被“强制”到空字符串,因为首先评估File构造函数的整个参数。.gz
archive.tar.gz
.
getParent()
null
您将获得有趣输出的唯一情况是,如果您传入表示系统根本身的文件,在这种情况下,将附加到路径字符串的其余部分。null
尝试使用:
File file = new File("fileName.zip"); // handler to your ZIP file
File file2 = new File("fileName.fileExtension"); // destination dir of your file
boolean success = file.renameTo(file2);
if (success) {
// File has been renamed
}