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 に答える