最初の4バイトを調べて、特定のファイルが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バイトを比較するためのより良い方法はありますか?(はい、もっとエラーチェックが必要なことはわかっています。)