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

新手上路,请多包涵

我正在尝试执行程序来压缩和解压缩文件。我想要做的就是压缩一个名称为 fileName.zip文件 (fileName.fileExtension) ,然后在解压缩时再次将其更改为 fileName.fileExtension

原文由 rahul0789 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 486
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));
    }


_编辑_:约翰的方法重命名文件(保留扩展名)。要更改扩展名,请执行以下操作:

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

这只会更改文件名 的最后一个扩展 名,即 .gz archive.tar.gz 。因此它适用于 Linux 隐藏文件,其名称以 . 这是非常安全的,因为如果 getParent() 返回 null (在 -父级是系统根)它被“强制转换”为一个空字符串,因为首先评估 File 构造函数的整个参数。

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

原文由 John Eipe 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题