0

我有一个包含图像和音频文件的 URL。我正在使用以下代码将图像和音频文件下载到文档目录:

  // urlsArray contains the list of images and audio urls

 for(int i= 0 ;i<[urlsArrray count]; i++)
        {

        NSString *urlString = [urlsArrray objectAtIndex:i];
        NSString *escapedUrlString = [urlString             stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url = [NSURL URLWithString:escapedUrlString];
    NSData *fileData=[NSData dataWithContentsOfURL:url];
    NSString *urlstring1 = [url absoluteString];
    NSArray *parts = [urlstring1 componentsSeparatedByString:@"/"];
    NSString *fileName = [parts objectAtIndex:[parts count]-1];

    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES);
    NSString *documentsDir = [paths objectAtIndex:0];
    NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:fileName];
    [fileManager createFileAtPath:savedImagePath contents:fileData attributes:nil];

    NSLog(@"files Stored Path is %@",savedImagePath);

现在我想分离图像和音频文件。我想将图像下载到文档目录,将音频文件下载到缓存目录。

4

2 回答 2

1

只需添加以下代码即可识别文件是图像文件还是音频文件

CFStringRef fileExtension = (CFStringRef) [file pathExtension];
CFStringRef fileUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, NULL);

if (UTTypeConformsTo(fileUTI, kUTTypeImage)) NSLog(@"It's an image");
else if (UTTypeConformsTo(fileUTI, kUTTypeMovie)) NSLog(@"It's a movie");
else if (UTTypeConformsTo(fileUTI, kUTTypeText)) NSLog(@"It's text");
else  NSLog(@"It's audio");
于 2013-02-22T11:28:49.603 回答
1

好的,如果你从你的数组中分离出来,那么请执行以下操作:

imagelist = [[NSMutableArray alloc]init];
videolist  = [[NSMutableArray alloc]init];

    for(int i = 0;i<urlsArrray.count;i++)
   {
    id arrayElement = [fileArray  objectAtIndex:i];
    if([arrayElement rangeOfString:@".mp3" ].location !=NSNotFound)
    {
     [videolist addObject:arrayElement];
      NSLog(@"videolist..%@",videolist); 
    }
    else([arrayElement rangeOfString:@".png"].location !=NSNotFound)
    {
    [imagelist addObject:arrayElement];
    NSLog(@"imagelist..%@",imagelist);
    }
}
于 2013-02-22T11:57:54.457 回答