如何在 Java 中运行时更改文件扩展名

2022-09-02 12:35:40

我正在尝试实现程序来压缩和解压缩文件。我想做的就是压缩一个文件名为文件名的文件(fileName.fileExtension.zip并在解压缩时再次将其更改为fileName.fileExtension


答案 1

这就是我过去重命名文件或更改其扩展名的方式。

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构造函数的整个参数。.gzarchive.tar.gz.getParent()null

您将获得有趣输出的唯一情况是,如果您传入表示系统根本身的文件,在这种情况下,将附加到路径字符串的其余部分。null


答案 2

尝试使用:

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
}

推荐