2013-04-29 2 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

비디오를 디렉토리에 저장하는 방법에 대한 내 답변을 확인하십시오. 업데이트했습니다. –

답변

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

+1

나는 몇 줄을 답에 덧붙여 설명해주었습니다. 더 많은 설명을 원한다면 대답 해 주시길 바랍니다. –

관련 문제