#ios #objective-c #nsfilemanager
Вопрос:
В моем приложении я хочу создать каталог и поместить в него несколько текстовых файлов. Вот мой код для создания каталога
-(BOOL)createFolderInDocuments:(NSString *)folderName
{
NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:folderName];
BOOL success = YES;
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
success = [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:amp;error];
if(error){
UIAlertController * alert = [UIAlertController
alertControllerWithTitle:@"Error"
message:[NSString stringWithFormat:@"Create folder: %@", error]
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* okButton = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action){}];
[alert addAction:okButton];
[self presentViewController:alert animated:YES completion:nil];
}
if (success) {
NSLog(@"Created folder with name %@", folderName);
}
return success;
}
После того, как я запустил метод, я получил это сообщение в консоли
2021-11-01 15:16:23.786293 0800 my-app[887:167944] Created folder with name 2021-11-01T15-16-23
что означает, что метод createDirectoryAtPath
возвращен true
.
Из моего опыта использования этого репозитория https://github.com/Varvrar/ios_logger после того, как я запустил метод, я должен получить папку с именем моего приложения в папке Finder, как показано ниже.
Но я здесь ничего не получил. На самом деле, я не смог найти каталог нигде на моем iPhone. Так что, я думаю, он вообще не был создан.
Кто-нибудь может сказать мне, как правильно создать каталог? Спасибо!
Комментарии:
1. «Но у меня здесь ничего нет», где именно «здесь»? Вам разрешено создавать папку только внутри папки изолированной среды, назначенной вашему приложению.
2. Извините, я не знаю точного местоположения на iPhone. Я могу найти его, следуя разделу «Просмотр приложений iOS и iPadOS, которые могут обмениваться файлами с вашим Mac» в этом руководстве support.apple.com/en-us/HT210598
3. Используется
NSLog
для печати пользователя dataPath.4. @El Tomato Я сделал это, результат «/var/mobile/Containers/Data/Application/73E4106A-B108-4CEA-B7E3-F829CF861577/Documents/2021-11-01T16-23-56»