我试图通过查看前四个字节来检测给定文件是否是 ZIP 文件。这是在 iOS 应用程序中,因此文件句柄由 Cocoa 框架处理,但实际的字节比较内容是 C 语言,我真的不知道。
unsigned char aBuffer[4];
NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
NSData *data = [fileHandle readDataOfLength:4];
[data getBytes:aBuffer];
if (aBuffer[0] == 0x50 && aBuffer[1] == 0x4b && aBuffer[2] == 0x03 && aBuffer[3] == 0x04) {
archiveType = ARCHIVE_TYPE_ZIP;
}
它有效,但让我觉得笨拙。有没有更好的方法来比较这 4 个字节?(是的,我知道它需要更多的错误检查。)