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

Gil*_*ili 6 java compression apache-commons

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

cen*_*tic 7

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

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

使用test-tar文件将导致:

Entry: usr/local/bin/bcdiff, Mode: 493
Entry: usr/local/bin/jgrep, Mode: 493
Entry: usr/local/bin/ysh, Mode: 365
Run Code Online (Sandbox Code Playgroud)

转换为:

-rwxr-xr-x bcdiff
-rwxr-xr-x jgrep
-r-xr-xr-x ysh
Run Code Online (Sandbox Code Playgroud)

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

HTH ......多米尼克.