Я пытаюсь сохранить эскизы созданных пользователем фотографий в подкаталоге в каталоге документов, но я не могу создать этот подкаталог в первую очередь. При попытке создать подкаталог в каталоге документов я получаю эту ошибку (Нет такого файла или каталога):«Нет такого файла или каталога» Ошибка при создании каталога
Error Domain=NSCocoaErrorDomain Code=4 "The operation couldn’t be completed. (Cocoa error 4.)"
UserInfo=0x17ef9c90 {NSFilePath=/var/mobile/Applications/FD0CC480-97FE-4E50-931F-5341DB6AD92B/Documents/com.Jonathan.App-Name/707F0431-7A09-4D33-B122-13C48AD4CA53,
NSUnderlyingError=0x17e51520 "The operation couldn’t be completed. No such file or directory"}
Я так запутался. Я знаю, что директория не существует, потому что я пытаюсь ее создать! Единственное, о чем я могу думать, это то, что каталог документов неверен, но это прямо из Apple Docs.
Я неправильно пытаюсь создать подкаталог?
- (NSURL *)documentsDirectory
{
NSFileManager *sharedFM = [NSFileManager defaultManager];
NSArray *possibleURLs = [sharedFM URLsForDirectory:NSDocumentDirectory
inDomains:NSUserDomainMask];
NSURL *appSupportDir = nil;
NSURL *appDirectory = nil;
if ([possibleURLs count] >= 1)
{
// Use the first directory (if multiple are returned)
appSupportDir = [possibleURLs objectAtIndex:0];
}
// If a valid app support directory exists, add the
// app's bundle ID to it to specify the final directory.
if (appSupportDir)
{
NSString *appBundleID = [[NSBundle mainBundle] bundleIdentifier];
appDirectory = [appSupportDir URLByAppendingPathComponent:appBundleID];
}
return appDirectory;
}
- (NSURL *)thumbnailDirectoryWithName:(NSString *)theName
{
NSURL *directory = [[self documentsDirectory] URLByAppendingPathComponent:theName];
NSURL *thumbnailsDirectory = [directory URLByAppendingPathComponent:@"Thumbnails"];
NSError *error;
if ([[NSFileManager defaultManager] fileExistsAtPath:[thumbnailsDirectory path]] == NO)
{
[[NSFileManager defaultManager] createDirectoryAtURL:thumbnailsDirectory withIntermediateDirectories:NO attributes:nil error:&error];
if (error)
{
NSLog(@"[Thumbnail Directory] %@", [error description]);
return nil;
}
}
return thumbnailsDirectory;
}
Я также попытался createDirectoryAtPath:
и stringByAppendingPathComponent:
с безрезультатно.
В NSURL *directory
в thumbnailDirectoryWithName:
возвращается:
/var/mobile/Applications/FD0CC480-97FE-4E50-931F-5341DB6AD92B/Documents/com.Jonathan.App-Name/707F0431-7A09-4D33-B122-13C48AD4CA53
Последний компонент пути к файлу, 707F0431-7A09-4D33-B122-13C48AD4CA53, это уникальный идентификатор для объекта в Core Data, которая позволяет мне уникально называют каталог.
Любая помощь очень ценится!
Спасибо, Это решило мою проблему. У меня уже был такой же код, как и danh, но он не работал. После смены его на «Да» это сработало. – Shruti
@Shruti, проблем нет. Я рад, что это помогло кому-то другому. – Jonathan