java - 提取tar文件时如何检测文件权限?

标签 java compression apache-commons

使用 Apache Commons Compress 时要提取 tar 文件,我如何找出每个 TarArchiveEntry 的文件权限(读、写、可执行) ?

最佳答案

TarArchiveEntry 提供了一个方法“getMode()”,它返回 Unix 文件模式,例如

TarArchiveEntry entry = input.getNextTarEntry();
while(entry != null) {
    System.out.println("Entry: " + entry.getName() + ", Mode: " + entry.getMode());
    entry = input.getNextTarEntry();
}

使用测试 tar 文件会导致:

Entry: usr/local/bin/bcdiff, Mode: 493
Entry: usr/local/bin/jgrep, Mode: 493
Entry: usr/local/bin/ysh, Mode: 365

转化为:

-rwxr-xr-x bcdiff
-rwxr-xr-x jgrep
-r-xr-xr-x ysh

您可以在 Internet 的许多站点上阅读有关模式编号的详细信息,例如here

HTH...多米尼克。

关于java - 提取tar文件时如何检测文件权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9435709/

相关文章:

java - 如果存在冗余,我该如何从这个java问题中删除冗余?

java - 多维数组声明

java - NullPointerException,杀死了我的程序

java - Spring Controller 未创建

linux - 如何将 "tail -f"压缩为压缩(gzipped)文件?

c - 如何修改 zlib MIN_MATCH 值?

php - 使用 gzcompress 是个好主意吗

java - 如何检查给定的字符串转换为long是否是EpochMills?

java - Glassfish 4.1 LogFactory 和 WSSElementFactory NoClassDefFoundError

java - 如何使用 apache lib 获取导数