從我的mac應用程序中,我需要將文件寫入\ Library \ ColorSync \ Profiles。爲此,應用程序需要管理員權限才能讀取寫入文件夾。在應用程序中可以得到相同的結果嗎?任何幫助將不勝感激。獲得在Mac應用程序中將文件寫入 Library ColorSync Profiles 的權限
我能彈出對話框的權限與下面的代碼片段
NSSavePanel *tvarNSSavePanelObj = [NSSavePanel savePanel];
[tvarNSSavePanelObj setDirectoryURL:[NSURL URLWithString:@"/Library/ColorSync/Profiles"]];
__block NSString *filePathexn = nil;
[tvarNSSavePanelObj beginSheetModalForWindow:[NSApplication sharedApplication].mainWindow completionHandler:^(NSInteger tvarInt) {
if(tvarInt == NSModalResponseOK){
NSURL* tvarUrl = [tvarNSSavePanelObj URL];
NSLog(@"doSaveAs filename = %@",[tvarUrl path]);
NSString *filePath = [tvarUrl path];
filePathexn = [filePath stringByAppendingPathExtension:@"rtf"];
OSStatus status;
if(![[NSFileManager defaultManager]isWritableFileAtPath:filePath]){
NSLog(@"Not Writable at path");
AuthorizationRef authRef;
AuthorizationItem right = {kAuthorizationRightExecute, 0, NULL, 0};
AuthorizationRights rights = {1, &right};
status = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagPreAuthorize, &authRef);
AuthorizationFlags authFlags = kAuthorizationFlagDefaults | kAuthorizationFlagExtendRights | kAuthorizationFlagInteractionAllowed | kAuthorizationFlagPreAuthorize;
status = AuthorizationCopyRights(authRef, &rights, kAuthorizationEmptyEnvironment, authFlags, NULL);
}
BOOL status1 = [[NSFileManager defaultManager]createFileAtPath:filePathexn contents:nil attributes:nil];
} else if(tvarInt == NSModalResponseCancel) {
return;
} else {
NSLog(@"doSave As tvarInt not equal 1 or zero = %3ld",(long)tvarInt);
return;
}
}];
我需要知道文件的寫如何才能完成。仍然文件不寫入路徑。是否需要指定任何工具名稱? SMJobless()可以嗎?請提供解決方案!
您沒有提供關鍵信息。 –
@ElTomato我做了一些修改。你現在可以評論嗎? – iGo
您的應用程序適用於誰?如果您打算通過Mac App Store分發您的應用程序,您將不被允許提示用戶進行管理認證。 –