Node.js 如何在不解压缩的情况下检查压缩类型?

Node.js 如何在不解压缩的情况下检查压缩类型?,node.js,compression,Node.js,Compression,我在nodejs中编写代码来解压缩不同的文件类型,如tar、tar.gz等 我没有可用的文件名 目前我使用蛮力解压。第一个成功的人就是赢家 我想通过事先了解压缩类型来改进这一点。 有什么方法可以做到这一点吗?你的暴力方法实际上会非常有效,因为软件会非常快地(通常在最初的几个字节内)确定它被交给了错误的东西。除了一个有效的 您可以查看常见格式的前缀字节列表。您还需要在压缩格式中检测tar格式,这里没有详细说明。即使你找到了匹配的前缀,你仍然需要继续解压和解码来测试假设,这基本上是你的暴力方法。你的

我在nodejs中编写代码来解压缩不同的文件类型,如tar、tar.gz等

我没有可用的文件名

目前我使用蛮力解压。第一个成功的人就是赢家

我想通过事先了解压缩类型来改进这一点。
有什么方法可以做到这一点吗?

你的暴力方法实际上会非常有效,因为软件会非常快地(通常在最初的几个字节内)确定它被交给了错误的东西。除了一个有效的


您可以查看常见格式的前缀字节列表。您还需要在压缩格式中检测tar格式,这里没有详细说明。即使你找到了匹配的前缀,你仍然需要继续解压和解码来测试假设,这基本上是你的暴力方法。

你的暴力方法实际上会非常有效,因为软件会非常快地确定,通常在前几个字节内,它被交错了东西。除了一个有效的


您可以查看常见格式的前缀字节列表。您还需要在压缩格式中检测tar格式,这里没有详细说明。即使您找到了匹配的前缀,您仍然需要继续解压和解码以测试假设,这基本上是您的蛮力方法。

可能重复的@Mels答案涉及硬编码常量,希望不会引入新的前缀,或者使用操作系统特定的工具。这是我一年中第五次遇到需要Node.js中的文件模块的人,但似乎一个也没有。@Alandarov有一段时间了。@msdex非常好。出于某种原因,我认为它依赖于从文件名中提取的扩展名。@Mels答案的可能副本包括硬编码常量,希望不会引入新的,或者使用操作系统特定的工具。这是我一年中第五次遇到需要Node.js中的文件模块的人,但似乎一个也没有。@Alandarov有一段时间了。@msdex非常好。出于某种原因,我认为它依赖于从文件名中提取的扩展名。