У меня возникают некоторые проблемы при попытке создать папку с помощью NSFileManager в MacOS X. Я создаю программное обеспечение в Lion, если это что-то изменит.
В любом случае. Структура программы выглядит примерно так:
- Заполните некоторые поля.
- Выберите папку с помощью 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 Bear - это имя моего "жесткого диска", я полагаю, что программе необходимо получить разрешение на доступ к жесткому диску. Я просто не знаю, как это сделать.
Любая помощь будет принята с благодарностью.