2015-10-06 1 views
0

создать два пути к файлу с этим кодом:iPhone копия файла

NSString *fileName = [[self genRandStringLength:15] stringByAppendingString:@".mp4"]; 
NSString *finalFilePath = [self.videoFiles stringByAppendingString:fileName]; 

NSString *tmpFile = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"temp.mp4"]]; 
[[NSFileManager defaultManager] removeItemAtPath:tmpFile error:NULL]; 

Тогда у меня есть некоторый код, чтобы создать видео файл, и я хочу, чтобы сохранить его в папке документа:

[[NSFileManager defaultManager] copyItemAtPath:tmpFile toPath:finalFilePath error:&err]; 

И я получаю эту ошибку:

Error Domain=NSCocoaErrorDomain Code=4 "The file “temp.mp4” doesn’t exist." 
UserInfo={NSSourceFilePathErrorKey=/private/var/mobile/Containers/Data/Application/E5B7BBCB-311F-41A3-949D-8A309F535C95/tmp/temp.mp4, NSUserStringVariant=(
    Copy 
    ), NSDestinationFilePath=/var/mobile/Containers/Data/Application/E5B7BBCB-311F-41A3-949D-8A309F535C95/Documents/VideoFiles/0iWDmhLvbbzM6SE.mp4, NSFilePath=/private/var/mobile/Containers/Data/Application/E5B7BBCB-311F-41A3-949D-8A309F535C95/tmp/temp.mp4, NSUnderlyingError=0x12f0099b0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}} 

Любая идея, в чем проблема?

Просто для некоторой проверки я пытаюсь скопировать видео в библиотеку iPhone Фото с: UISaveVideoAtPathToSavedPhotosAlbum(tmpFile, self, nil, nil);

И это отлично работает, так что файл существует.

+0

Что такое значение 'finalFilePath'? –

+0

Проверьте папку, указанную на диске в симуляторе. Файл не будет там, поэтому вы, вероятно, удалили его раньше или создали его где-то еще. – Christian

+0

@ChrisLoonam Это значение '/ var/mobile/Containers/Data/Application/4D550508-ACEC-427E-A6FA-B10C7323CF43/Documents/VideoFiles/0MiJlwTi7rlDi4g.mp4' – MTA

ответ

0

Используйте этот код

NSString *fileName = [[self genRandStringLength:15] stringByAppendingString:@".mp4"]; 
NSString *finalFilePath = [self.videoFiles stringByAppendingString:fileName]; 

NSString *tmpFile = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"temp.mp4"]]; 

NSFileManager *fileManager = [NSFileManager defaultManager]; 

BOOL success = [fileManager fileExistsAtPath:tmpFile]; 

if (success) 
{ 
    [[NSFileManager defaultManager] copyItemAtPath:tmpFile toPath:finalFilePath error:&err]; 

    [[NSFileManager defaultManager] removeItemAtPath:tmpFile error:NULL]; 

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