2013-04-29 141 views
0

我试图在录制文件后将文件夹中的影片保存到文件夹中。将记录的视频保存到文档文件夹中

这是我的代码:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 



    NSString *moviePath = [[info objectForKey:UIImagePickerControllerMediaURL] path]; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
    NSLog(@"path from image picker: %@", moviePath); 

    NSFileManager* fileManager = [NSFileManager defaultManager]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES); 
    NSString* documentsDir = [paths objectAtIndex:0]; 

    NSLog(@"%@",documentsDir); 

    [fileManager moveItemAtPath:moviePath toPath:documentsDir error:nil]; 

    NSArray *files = [fileManager contentsOfDirectoryAtPath:documentsDir 
                error:nil]; 

    for (id object in files) { 
     NSLog(@"%@",object); 
    } 
} 

正如你可能猜到了,这是行不通的。

第一个日志说:从图片选择路径:/private/var/mobile/Applications/6630FBD3-1212-4ED0-BC3B-0C23AEEFB267/tmp/capture-T0x1e575330.tmp.SQQ2C5/capturedvideo.MOV

秒记录说:/ var/mobile/Applications/6630FBD3-1212-4ED0-BC3B-0C23AEEFB267/Documents

任何人都知道为什么它不工作?

+0

检查我的答案,保存视频到目录我已更新它。 – 2013-04-29 08:12:23

回答

2

尝试此代码,当您保存某些内容时,该文件应具有该文件的文件名和扩展名。在您的代码中,目标保存路径就是文档目录。那是错的。使用[documentsDir stringByAppendingPathComponent:filename.extension]会给你正确的目的地filePath,[moviePath lastPathComponent]返回所选文件的文件名+扩展名。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    NSString *moviePath = [[info objectForKey:UIImagePickerControllerMediaURL] path]; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
    NSLog(@"path from image picker: %@", moviePath); 

    NSFileManager* fileManager = [NSFileManager defaultManager]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES); 
    NSString* documentsDir = [paths objectAtIndex:0]; 
    NSString *savePath = [documentsDir stringByAppendingPathComponent:[moviePath lastPathComponent]]; 

    NSLog(@"%@",savePath); 

    [fileManager moveItemAtPath:moviePath toPath:savePath error:nil]; 

    NSArray *files = [fileManager contentsOfDirectoryAtPath:documentsDir 
                 error:nil]; 

    for (id object in files) { 
     NSLog(@"%@",object); 
    } 
} 
+0

似乎在工作! :)请解释... – user2328703 2013-04-29 07:42:29

+1

我在答案中增加了几行,通过它们。告诉我,如果你想要更多的解释,希望你将它标记为答案 – 2013-04-29 07:43:59

相关问题