2011-10-04 4 views
1

현재이 코드를 사용하여 이미지를 NSDocumentDirectory에 저장하고 있습니다. 이 카운터를 명명 규칙으로 사용합니다.NSDocumentDirectory에서 모든 이미지를 검색하고 배열에 저장

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo 
{ 
    [self.popoverController dismissPopoverAnimated:YES]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDir = [paths objectAtIndex:0]; 
    NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.png", counter]]; 
    UIImage *image = imageView.image; 
    NSData *imageData = UIImagePNGRepresentation(image); 
    [imageData writeToFile:savedImagePath atomically:NO]; 
} 

이 방법은 루프를 사용하여 모두를 검색하기가 쉽기 때문에이 방법을 사용합니다. NSDocumentDirectory에서 다른 뷰에 표시 할 수 있도록 모든 이미지를 검색하고 싶습니다. 다음 코드는 어떻게 검색하는지 보여줍니다.

-(NSMutableArray *)GetImage:(NSMutableArray *)arrayImgNames 
{ 
    NSMutableArray *tempArray; 
    for(int i=0;i<[arrayImgNames count]; i++) 
    { 
    NSArray *paths1 = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths1 objectAtIndex:0]; 
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent: [arrayImgNames objectAtIndex:i]]; 
    [tempArray addObject:[[UIImage alloc] initWithContentsOfFile:filePath]]; 
    return tempArray; 
    } 
} 

그러나 카운터를 내 이미지의 명명 규칙으로 사용하고 싶지 않습니다. 나는 그들을 위해 적절한 이름을 사용하고 싶습니다. 그러나 그렇게한다면, 나는 모든 이미지를 찾는 나의 방법을 바꾸어야 할 것입니다.

언급 한이 방법 이외의 다른 모든 이미지를 검색 할 수있는 다른 방법이 있습니까?

답변

2

당신은 다음 방법을 사용하여 파일을 검색 할 수 있습니다 문서 디렉토리의 모든 파일에

NSURL *url = [[AppDelegate sharedAppDelegate] applicationDocumentsDirectory]; 
NSError *error = nil; 
NSArray *properties = [NSArray arrayWithObjects: NSURLLocalizedNameKey, NSURLLocalizedTypeDescriptionKey, nil]; 

NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:url 
        includingPropertiesForKeys:properties options:(NSDirectoryEnumerationSkipsPackageDescendants) 
        error:&error]; 

files에서 경로에 저장됩니다.

NSURL *url = [files objectAtIndex:index]; 
NSString *localizedName = [url lastPathComponent]; 
0

NSDocumentDirectory의 모든 이미지를 검색하고있는 UIImageView viewcontroller.m

  • (무효) viewDidLoad에 { [슈퍼에 저장 : 다음 코드는이 이름을 얻을하는 데 도움이됩니다 viewDidLoad];

    for (int i=0; i<5; i++) { 
    
    imgview=[[UIImageView alloc]initWithFrame:CGRectMake(x, y, width, height)]; 
    
    NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    

    NSString * docDirectory = [sysPaths objectAtIndex : 0];

    NSString *str=[NSString stringWithFormat:@"img%d.jpg",i]; 
    
    NSLog(@"abc %@",str); 
    

    NSString * imagePath = [docDirectory stringByAppendingPathComponent : str];

    imgview.image = [UIImage imageWithData : [NSData dataWithContentsOfFile : imagePath]];
    [self.view addSubview : imgview]; [imgview setUserInteractionEnabled : YES];

    x=x+width+margin; 
    if (x>=totalwidth) { 
    
        y=y+height+margin; 
        x=margin; 
    
    }  
    

    } }

관련 문제