使用 FileAttributeKey.posixPermissions 与使用 stat -f %A 有何不同?
How's using FileAttributeKey.posixPermissions different from using stat -f %A?
我正在尝试获取文件的 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)
}
}
我正在尝试获取文件的 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)
}
}