我想对 NSFilePosixPermissions 使用八进制权限(用于 chmod)。
这是我现在所做的:
NSFileManager *manager = [NSFileManager defaultManager];
NSDictionary *attributes;
[attributes setValue:[NSString stringWithFormat:@"%d", 0777]
forKey:@"NSFilePosixPermissions"]; // chmod permissions 777
[manager setAttributes:attributes ofItemAtPath:@"/Users/lucky/Desktop/script" error:nil];
我没有收到错误,但是当我用“ls -o”检查结果时,权限不是-rwxrwxrwx。
怎么了?
感谢帮助。
First, NSFilePosixPermissions
是常数的名称。它的价值也可能是相同的,但这并不能保证。的价值NSFilePosixPermissions
常数可能会在框架版本之间发生变化,例如。 G。从@"NSFilePosixPermissions"
to @"posixPermisions"
。这会破坏你的代码。正确的方法是将常数用作NSFilePosixPermissions
, not @"NSFilePosixPermissions"
.
另外,NSFilePosixPermissions 参考 https://developer.apple.com/documentation/foundation/nsfileposixpermissions?language=objc说关于NSFilePosixPermisions
:
对应的值为NSNumber
目的。使用shortValue
方法来检索权限的整数值。
设置 POSIX 权限的正确方法是:
// chmod permissions 777
// Swift
attributes[NSFilePosixPermissions] = 0o777
// Objective-C
[attributes setValue:[NSNumber numberWithShort:0777]
forKey:NSFilePosixPermissions];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)