无法使用NSFileManager创建新目录,并将所有者作为“root”

时间:2012-03-21 01:56:40

标签: objective-c cocoa nsfilemanager

NSFileOwnerAccountNameNSFileGroupOwnerAccountName的分配不起作用?创建的目录默认为我的帐户coderama和组staff

NSFileManager *fileManager = [NSFileManager defaultManager];
NSMutableDictionary *attr = [NSMutableDictionary dictionary]; 
[attr setObject:@"root" forKey:NSFileOwnerAccountName];
[attr setObject:@"wheel" forKey:NSFileGroupOwnerAccountName]; 
[attr setObject:[NSNumber numberWithInt:0755] forKey:NSFilePosixPermissions];

[fileManager createDirectoryAtPath:dir withIntermediateDirectories:TRUE attributes:attr error:&error];

1 个答案:

答案 0 :(得分:2)

很有可能未经授权,您将无法创建root拥有的任何内容。但是,假设您有授权......

文档未特别针对createDirectoryAtPath:withIntermediateDirectories:attributes:提及此限制,但对于相关方法setAttributes:ofItemAtPath:error:,您无法使用NSFileOwnerAccountNameNSFileGroupOwnerAccountName。您必须使用NSFileOwnerAccountIDNSFileGroupOwnerAccountID来使用帐户ID。如果您使用基于…Name的密钥,则会忽略它们。

可能createDirectoryAtPath:withIntermediateDirectories:attributes:也有此限制。我会尝试设置ID而不是名称,我怀疑它会起作用。