#include #include #include #include "Define.h" int ZipArchiver(); int main() { std::printf("==================== Hello Zip! ====================\r\n"); int iRet = 0; // Zip Format define check size_t iSizeTest = sizeof(LocalFileHeader); if (LOCAL_FILE_HEADER_BYTE != iSizeTest) { std::printf("1 Wrong Header Size : %d / %d \r\n", iSizeTest, LOCAL_FILE_HEADER_BYTE); iRet = -1; } iSizeTest = sizeof(CentralDirectory); if (CENTRAL_DIRECTORY_BYTE != iSizeTest) { std::printf("2 Wrong Header Size : %d / %d \r\n", iSizeTest, CENTRAL_DIRECTORY_BYTE); iRet = -1; } iSizeTest = sizeof(EoCDRecord); if (EOCD_BYTE != iSizeTest) { std::printf("3 Wrong Header Size : %d / %d \r\n", iSizeTest, EOCD_BYTE); iRet = -1; } // Main Zip archive method if (iRet != -1) { iRet = ZipArchiver(); } return iRet; } int ZipArchiver() { LocalFileHeader LFHeader; CentralDirectory CentDirec; EoCDRecord ECDR; using namespace std; ifstream fileIn("MyZip.txt", ios::binary); bool iRet = fileIn.is_open(); if (!iRet) { printf("File open failed"); } else { // ÆÄÀÏ Å©±â °è»ê // seekg(offset, ¸ñÇ¥Á¡) fileIn.seekg(0, ios::end); streamsize fileInSize = fileIn.tellg(); // beg == begin fileIn.seekg(0, ios::beg); // TODO : Buffering À¸·Î ±¸Çö. // ¸Þ¸ð¸® ÇÒ´ç uint8_t* pFile = (uint8_t *)malloc(fileInSize); // Read fileIn.read((char *)pFile, fileInSize); // Free free(pFile); } return iRet; }