У меня возникли проблемы с созданием папки с использованием NSFileManager в MacOS X. Я создаю программное обеспечение в 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