Objective-C:启用/禁用文件读取(chmod ar)

TCB*_*B13 1 file-permissions objective-c chmod

使用Objective-C,如何为所有用户提供/获取读取文件的权限?

我需要的东西,具有相同的效果chmod a-rchmod a+r.

谢谢!

Jam*_*ter 6

您是否也熟悉chmod 755 file更改权限的方法?使用八进制数?

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; 

//Prefixing zero is octal.
int readPermission = 04;
int writePermission = 02;
int executePermission = 01;

//End multiplication is to shift digits left.
int owner = (readPermission | writePermission | executePermission) * (8 * 8);   //7
int group = (readPermission)                                       * (8);       //4 
int other = (executePermission);                                                //1

int permissions = owner + group + other;  //0741

[dict setObject:[NSNumber numberWithInt:permissions] forKey:NSFilePosixPermissions]; 

NSError *error = nil;
[[NSFileManager defaultManager] setAttributes:dict ofItemAtPath:[file path] error:&error];
Run Code Online (Sandbox Code Playgroud)

  • `readPermission&writePermission&executePermission` == 0因为它是AND-ing而且没有一个位是共同的.无论如何,不​​要使用自己生成的常量和数学来计算权限掩码.使用`#include <sys/stat.h>`然后再使用`S_IRWXU | S_IRGRP | S_IXOTH`. (5认同)