我在使用MacOS X中的NSFileManager創建文件夾時遇到了一些問題。我在Lion中創建軟件,如果這改變了任何東西。獲取使用NSFileManager創建新文件夾的權限
無論如何。程序結構如下:
- 填寫一些字段。
- 使用NSOpenPanel選擇一個文件夾。
- 該程序從字段中生成新文件夾的名稱。
- 在所選文件夾中創建一個具有該名稱的文件夾。
是應該創建該文件夾中的代碼看起來是這樣的:
NSString *name = [pnameField stringValue];
NSString *number = [self parseVerknr:[pnumberField stringValue]];
NSString *date = [pdateField stringValue];
NSString *folderName;
//Here I generate the folder name from some rules and stuffsies
//It ends up as something like: 13245_08 - cp. - name
NSOpenPanel *myPanel = [NSOpenPanel openPanel];
myPanel.canChooseFiles = NO;
myPanel.canChooseDirectories = YES;
myPanel.canCreateDirectories = YES;
[myPanel beginWithCompletionHandler:^(NSInteger result){
if (result==NSFileHandlingPanelOKButton){
NSFileManager *myManager = [[NSFileManager alloc] init];
NSError *merror;
NSString *directoryString = [NSString stringWithFormat:@"%@%@", [myPanel.URL absoluteString], folderName];
//Here the directory string looks like file://localhost/Users/username/Documents/folders/12345_09 - cp. - Koop
directoryString = [directoryString substringFromIndex:6];
//After it looks like: /localhost/Users/username/Documents/folders/12345_09 - cp. - Koop
NSLog(@"directory: %@", directoryString);
[myManager createDirectoryAtPath:directoryString withIntermediateDirectories:YES attributes:nil error:&merror];
NSLog(@"%@", [merror localizedDescription]);
}
}];
如果我不採取從指數6我得到一個大錯誤棧子(試圖把它從16也是這樣做的)。如果我使用分割字符串我得到以下錯誤:
You don’t have permission to save the file 「localhost」 in the folder 「PK Bear」.
由於PK熊是我的「硬盤」我猜程序需要獲得許可,訪問硬盤驅動器的名稱。我只是不知道該怎麼做。
任何幫助將不勝感激。
工作就像一個魅力,非常感謝!我一定會讀到兩者之間的區別。 – Bjorninn 2012-03-30 17:53:05