gpt4 book ai didi

xcode - NSFileManager & NSFilePosixPermissions

转载 作者:行者123 更新时间:2023-12-04 13:14:33 32 4
gpt4 key购买 nike

我想对 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。

怎么了?
感谢帮助。

最佳答案

一、NSFilePosixPermissions是常数的名称。它的值也可能相同,但这并不能保证。 NSFilePosixPermissions的值常量可能会在框架版本之间发生变化,例如。 G。来自 @"NSFilePosixPermissions"@"posixPermisions" .这会破坏你的代码。正确的方法是将常量用作 NSFilePosixPermissions ,不是 @"NSFilePosixPermissions" .

另外,NSFilePosixPermissions referenceNSFilePosixPermisions :

The corresponding value is an NSNumber object. Use the shortValue method to retrieve the integer value for the permissions.



设置 POSIX 权限的正确方法是:
// chmod permissions 777

// Swift
attributes[NSFilePosixPermissions] = 0o777

// Objective-C
[attributes setValue:[NSNumber numberWithShort:0777]
forKey:NSFilePosixPermissions];

关于xcode - NSFileManager & NSFilePosixPermissions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9655185/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com