我正在尝试获取文件的posix权限,但是当我使用密钥FileAttributeKey.posixPermissions
(最初是NSFilePosixPermissions
)来检索数值posix权限值时,它返回511 (-r-x--x--x)
,但是当我在终端中使用stat -f %A /path/to/file
时,它返回777 (-rwxrwxrwx)
这是正确的一个(我使用chmod 777 /path/to/file
,所以它应该是777 (-rwxrwxrwx)
)。
这是我使用FileAttributeKey.posixPermissions
(Swift 4)的代码:
var numericalValue = "000"
if let attributes = try? FileManager.default.attributesOfItem(atPath: "/path/to/file") {
if let posixPermissions = attributes[.posixPermissions] as? NSNumber {
numericalValue = posixPermissions.stringValue
}
}
我不知道发生了什么,我想知道从FileAttributeKey.posixPermissions
返回的值与stat -f %A /path/to/file
或stat -x /path/to/file
的输出有什么不同,有谁可以帮我弄明白?
您需要以八进制显示结果:
if let attributes = try? FileManager.default.attributesOfItem(atPath: "/path/to/file") {
if let posixPermissions = attributes[.posixPermissions] as? NSNumber {
let octal = String(posixPermissions.intValue, radix: 8, uppercase: false)
print(octal)
}
}