1

目前我正在使用这些代码将我的图像保存到 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;
  }
}

但是,我不希望将计数器用作我的图像的命名约定。我想为它们使用专有名称,但如果这样做,我将不得不更改检索所有图像的方法。

除了我提到的这种方法之外,还有其他方法可以检索所有图像吗?

4

2 回答 2

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];
于 2011-10-04T10:07:01.243 回答
0

从 NSDocumentDirectory 检索所有图像并存储到 uiimageview viewcontroller.m

  • (void)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;
    
    }    
    

    } }

于 2015-02-10T05:17:49.017 回答