2015-07-16 3 views
2

Я хочу сохранить видео mp4 в своей папке, но когда я снова открываю приложение, этот файл равен нулю. Но когда я сохраняю файл, я могу его открыть, поэтому кажется, что он исчезает из папки.Файлы NSDocumentDirectory исчезают в ios

Сохранить:

NSData *videoData = [NSData dataWithContentsOfURL:exportUrl]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *tempPath = [documentsDirectory stringByAppendingFormat:@"/%@",videoName]; 

self.path_video_to_save = tempPath; 

BOOL success = [videoData writeToFile:tempPath atomically:YES]; 

if (success) 
    NSLog(@"saved"); 
else 
    NSLog(@"not saved!!!!!!!!!!!!!!"); 

Я получаю успех верно, так что это нормально, и я могу играть мое видео хорошо.

NSString *path_video = [dict objectForKey:@"path"]; //dictionary where I save the path, the same before and after closing app 

NSData *videoData = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath:path_video]]; 

if (videoData == nil){ 
    NSLog(@"DATA NULL"); 
} 
else 
    NSLog(@"DATA OK"); 

    NSLog(@"PATH:%@", path_video); 

    self.player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:path_video]]; 

и в этот момент он отлично работает.

Но когда я закрываю и открываю снова приложение, и я получаю путь, мое приложение падает, и у меня есть журнал «DATA NULL» Я не понимаю, почему, когда я закрываю приложение, файл исчезает ... что случилось?

благодаря

+0

вы используете устройство или тренажер? Ofc Я предлагаю попробовать его на реальном устройстве. –

+0

Я использую настоящее устройство ... iPhone 5s – CrazyDev

+0

Хорошо, я просто попробовал его на iPad, и он отлично работает, что происходит в моем iPhone? – CrazyDev

ответ

3

Это происходит потому, что в прошивке 8 + имя папки приложения переименовывается каждый раз, когда вы запускаете его.

Проверьте его/Пользователи/«ваше имя пользователя»/Библиотека/Разработчик/CoreSimulator/Devices/«имя устройства»/данные/Контейнеры/Данные/Приложение/«Имя приложения» (Тест в симуляторе).

Итак, вы должны сохранить путь без каталога документов. И когда вы пытаетесь найти путь, вам нужно добавить каталог документов до того, как вы сохранили ранее.

Как и ваше собственное имя папки «Save_Video», а имя файла «video_01.mp4». Файл пути сохранения будет «Application каталог документов» /Save_Video/video_01.mp4

Тогда вы должны хранить только «Save_Video/video_01.mp4» (в базе данных/NSUserDefaults), и когда вы извлекаете файл на пути должны быть

«Применение каталог документов» /Save_Video/video_01.mp4

+0

Да, это умное решение, спасибо многому человеку !!!! – CrazyDev

Смежные вопросы