2012-03-21 28 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而不是名字,我懷疑它會起作用。