1

Objective-Cを使用して、すべてのユーザーにファイルを読み取るためのアクセス許可を付与/取得するにはどうすればよいですか?

chmod a-rと同じ効果を持つものが必要ですchmod a+r

ありがとうございました!

4

2 に答える 2

6

chmod 755 file権限を変更する方法にも精通していますか?8進数を使用しますか?

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];
于 2012-06-13T19:24:48.350 に答える
3

Objective Cでこれを行うには:

NSFileManager *fm = [NSFileManager defaultManager];
NSError *error = nil;
NSDict *attribs = [fm attributesOfItemAtPath:[file path] error:&error];
int permissions = [[attribs objectForKey:@"NSFilePosixPermissions"] intValue];
permissions |= (S_IRSUR | S_IRGRP | S_IROTH);
NSDict *newattribs = [NSDict dictionaryWithObject:[NSNumber numberWithInt:permissions]
                                           forKey:NSFilePosixPermissions];
[fm setAttributes:dict ofItemAtPath:[file path] error:&error];

または、POSIXパス(-[NSFileManager fileSystemRepresentationForPath]を使用)を取得し、chmod関数を使用してCで実行します。これは、chmodコマンドラインツールが使用するものであり、任意のPOSIXプラットフォームに移植できます。

于 2012-06-13T20:27:48.843 に答える