2017-10-07 4 views
0

NSURL変数にはさまざまなWebリンクが含まれています。このリンクが含まれているファイルのタイプを検出します。 これはpdfファイルです:https://vk.com/doc-105831417_445462965 これはPDFファイルか他の種類のファイル(例:ZIP、doc)がコードであることをどのように検出できますか? 私はこのコードを持っているが、それが唯一のハードウェア上のファイルのために働いています:私はそれを考えるNSURLのファイルタイプを検出します。

-(BOOL)ifZip:(NSString*)path{ 


NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:path]; 
NSData *data = [fh readDataOfLength:4]; 
if ([data length] == 4) { 
    const char *bytes = [data bytes]; 
    if (bytes[0] == 'P' && bytes[1] == 'K' && bytes[2] == 3 && bytes[3] == 4) { 
     return YES; 
    } 
} 

return NO;} 

答えて

0

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


if([self ifZip:filePath]){ 

    return ACFileTypeZIP; 

} 

if (UTTypeConformsTo(fileUTI, kUTTypeMovie)){ 

    return ACFileTypeZIP; 

}else if (UTTypeConformsTo(fileUTI, kUTTypePDF)){ 

    return ACFileTypeDocument; 

}else if (UTTypeConformsTo(fileUTI, kUTTypeImage)){ 

    return ACFileTypeImage; 

}else if (UTTypeConformsTo(fileUTI, kUTTypeAudio)){ 

    return ACFileTypeAudio; 

} 

CFRelease(fileUTI); 

注ACFileTypeはtypes.ifZipの私の列挙型は、zipファイルを検出するための私の方法です

NSString *extension = [url pathExtension]; 
関連する問題