Java TarEntry解压tar文件出现PaxHeaders
时间: 2023-10-03 18:02:25 浏览: 269
当解压tar文件时出现PaxHeaders文件夹,通常是因为原始tar文件在创建时使用了PAX扩展格式。PAX是一种为tar文件添加元数据的标准格式,用于支持更广泛的文件系统和更大的文件大小。
要解决这个问题,可以通过使用tar命令来提取文件。在Linux或Mac系统中,可以使用以下命令:
```
tar -xf file.tar
```
这将提取tar文件中的所有内容,包括PaxHeaders文件夹。如果只想提取特定文件夹或文件,可以使用以下命令:
```
tar -xf file.tar folder/file
```
这将提取文件夹/文件(如果存在),并忽略PaxHeaders文件夹。在Java中,也可以使用Apache Commons IO库来解压缩tar文件,例如:
```java
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
try (TarArchiveInputStream tais = new TarArchiveInputStream(new GzipCompressorInputStream(new FileInputStream("file.tar.gz")))) {
TarArchiveEntry entry;
while ((entry = tais.getNextTarEntry()) != null) {
// 处理tar文件中的每个条目
}
} catch (IOException e) {
// 处理异常
}
```
这将提取tar.gz文件中的所有内容,而忽略PaxHeaders文件夹。
阅读全文