从NSURL检测文件类型

时间:2017-10-07 11:23:16

标签: ios objective-c nsurl

我有NSURL变量,其中包含不同的Web链接。我想检测包含此链接的文件的类型(如果它包含任何链接)。 例如,这是pdf文件:https://vk.com/doc-105831417_445462965 如何在代码中检测到这是PDF文件或其他类型的文件(例如ZIP,doc)? 我有这个代码,但它只适用于硬件上的文件:

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是我的类型枚举.ifZip是我检测zip文件的方法:

-(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;}

1 个答案:

答案 0 :(得分:0)

我认为它应该有效:

func (c App) Index() revel.Result {

    dat := c.Params.Form.Get(doIt);

    return c.Render(dat)
}