如何在Scala中检查文件是否被压缩?

Pra*_*p D 0 scala

有没有办法找出输入文件是否在scala中被压缩(例如:zip,tar.gz,.7z等)?

检查扩展名不是一个选项,因为可能存在许多压缩文件类型,并且可能只是将文件从.txt重命名为.zip.我们应该能够检测到它不是有效的压缩文件.

问候

Jir*_*riS 5

这似乎不是Scala特定的问题,但最好是打开文件,读取前几个字节(即魔术字节)并将其与众所周知的签名进行比较.

例如,这里可以找到这些签名.一个例子是

  • 1F 8B 08 for .gz
  • 42 5A 68 for .bz2
  • BC AF 27 1C适用于.7z