支持獲取常見的圖片類型和文件類型
+ (NSString *)getFileTypeWithPath:(NSString *)filePath{
NSUInteger headerLength = 16; // 頭文件長度,根據(jù)文件類型確定
NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
if (fileHandle != nil) {
NSData *headerData = [fileHandle readDataOfLength:headerLength]; // 獲取文件頭數(shù)據(jù)
// 將文件頭數(shù)據(jù)轉(zhuǎn)換為十六進(jìn)制字符串
NSString *hexString = [headerData description];
hexString = [hexString stringByReplacingOccurrencesOfString:@" " withString:@""];
hexString = [hexString stringByReplacingOccurrencesOfString:@"<" withString:@""];
hexString = [hexString stringByReplacingOccurrencesOfString:@">" withString:@""];
hexString = [hexString lowercaseString];
[fileHandle closeFile];
if ([hexString containsString:@"41564920"]) { // 41 56 49 20 avi
return @".avi";
}else if([hexString containsString:@"6d703432"]){ // 6D 70 34 32 mp4
return @".mp4";
}else if ([hexString containsString:@"1a45dfa3"]){ // 1A 45 DF A3 mkv
return @".mkv";
}else if ([hexString containsString:@"6d6f6f76"]){ // 6D 6F 6F 76 mov
return @".mov";
}else if ([hexString containsString:@"464c56"]){ // 46 4C 56 flv
return @".flv";
}else if ([hexString containsString:@"0ad7a300"]){ //文件頭標(biāo)識:0A D7 A3 00 文件類型:ASF(30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C)
return @".wmv";
}else if ([hexString containsString:@"89504e470d0a1a0a"]) { // 89 50 4E 47 0D 0A 1A 0A 8個(gè)字節(jié)的頭文件
return @".png";
}else if([hexString containsString:@"ffd8"]){ // FF D8 jpg/jpeg
return @".jpg";
}else if ([hexString containsString:@"474946"]){ // 47 49 46 gif
return @".gif";
}else if ([hexString containsString:@"424d"]){ // 47 49 46 38 gif
return @".bmp";
}else if ([hexString containsString:@"4949"]||[hexString containsString:@"4d4d"]){ // 49 49 或 4D 4D
return @".tiff";
}else if ([hexString containsString:@"57454250"]){ // 52 49 46 46 XX XX XX XX 57 45 42 50 YY YY YY YY ZZ ZZ ZZ ZZ
return @".webp";
}else if ([hexString containsString:@"00000100"]){ // 00 00 01 00
return @".ico";
}else if ([hexString containsString:@"68656963"]){ // 68 65 69 63
return @".HEIC";
}
} else {
NSLog(@"無法打開文件");
return nil;
}
return nil;
}