2012-03-21 26 views
0

作业NSFileOwnerAccountNameNSFileGroupOwnerAccountName不起作用?创建的目录默认为我的帐户coderama和组staff无法使用NSFileManager与所有者创建新的目录作为“根”

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]; 
+0

错误包含哪些信息? – trudyscousin 2012-03-21 02:11:08

+0

没有错误 – Coderama 2012-03-21 02:18:05

+0

哦。那么,根据你的代码示例,你似乎没有检查它,甚至检查BOOL结果。但是,如果你真的没有得到任何错误,那就试试errno吧。 – trudyscousin 2012-03-21 02:44:22

回答

2

很有可能没有授权,您将无法创建root拥有的任何东西。但是,假设你有授权...

的文档不具体提及此限制为createDirectoryAtPath:withIntermediateDirectories:attributes:,但对于相关方法setAttributes:ofItemAtPath:error:,您不能使用NSFileOwnerAccountNameNSFileGroupOwnerAccountName。您必须改用帐号ID,并使用NSFileOwnerAccountIDNSFileGroupOwnerAccountID。如果您使用基于…Name的密钥,它们将被忽略。

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