如何检查 TarArchiveEntry 是否设置了 3 个执行位中的任何一个?
How to check if TarArchiveEntry has any of the 3 execute bits set?
在 commons-compress TarArchiveEntry 中,可以使用 getMode() 请求模式,但是这个 returns 是一个整数。
检查是否设置了任何执行位(用户、组、每个人)的最佳方法是什么?
可以一次完成,一次检查所有三个位:
static boolean isExecutable(int mode) {
return (mode & 0111) != 0;
}
其中0111
是一个八进制字面值,这种情况极为罕见,所以作为一个更清晰但更长的替代方案:
static boolean isExecutable(int mode) {
int mask = 1 | (1 << 3) | (1 << 6);
return (mode & mask) != 0;
}
在 commons-compress TarArchiveEntry 中,可以使用 getMode() 请求模式,但是这个 returns 是一个整数。
检查是否设置了任何执行位(用户、组、每个人)的最佳方法是什么?
可以一次完成,一次检查所有三个位:
static boolean isExecutable(int mode) {
return (mode & 0111) != 0;
}
其中0111
是一个八进制字面值,这种情况极为罕见,所以作为一个更清晰但更长的替代方案:
static boolean isExecutable(int mode) {
int mask = 1 | (1 << 3) | (1 << 6);
return (mode & mask) != 0;
}