qwe*_*rtz 6 permissions xcode nsdictionary chmod nsfilemanager
我想对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];
Run Code Online (Sandbox Code Playgroud)
我没有得到任何错误,但是当我用"ls -o"检查结果时,权限是-rwxrwxrwx.
怎么了?感谢帮助.
gcb*_*ann 14
首先,NSFilePosixPermissions是常量的名称.它的价值也可能相同,但不保证.该值NSFilePosixPermissions恒定的可能框架的版本,例如从之间切换@"NSFilePosixPermissions"到@"posixPermisions".这会破坏你的代码.正确的方法是使用常量NSFilePosixPermissions,而不是@"NSFilePosixPermissions".
此外,NSFilePosixPermissions参考说明NSFilePosixPermisions:
对应的值是一个
NSNumber对象.使用该shortValue方法检索权限的整数值.
设置POSIX权限的正确方法是:
// chmod permissions 777
// Swift
attributes[NSFilePosixPermissions] = 0o777
// Objective-C
[attributes setValue:[NSNumber numberWithShort:0777]
forKey:NSFilePosixPermissions];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9152 次 |
| 最近记录: |