您好,登錄后才能下訂單哦!
在C++中,可以使用第三方庫來讀取ZIP文件元數據
首先,確保已經安裝了minizip庫。然后,創建一個名為main.cpp
的文件,并將以下代碼粘貼到其中:
#include <iostream>
#include <vector>
#include <string>
#include "unzip.h"
int main() {
// 打開ZIP文件
unzFile zip_file = unzOpen("example.zip");
if (zip_file == nullptr) {
std::cerr << "Error opening ZIP file" << std::endl;
return 1;
}
// 讀取ZIP文件中的所有文件和目錄
unz_global_info global_info;
if (unzGetGlobalInfo(zip_file, &global_info) != UNZ_OK) {
std::cerr << "Error getting global info" << std::endl;
unzClose(zip_file);
return 1;
}
std::cout << "Total files: " << global_info.number_of_files << std::endl;
std::cout << "Total directories: " << global_info.number_of_dirs << std::endl;
// 讀取每個文件的元數據
unz_file_info file_info;
const char* filename;
while (unzGoToNextFile(zip_file, &file_info) == UNZ_OK) {
unzGetCurrentFileInfo(zip_file, &file_info, &filename, nullptr, 0, nullptr, 0, nullptr);
std::cout << "Filename: " << filename << std::endl;
// 讀取文件大小
uLong file_size = file_info.uncompressed_size;
std::cout << "File size: " << file_size << " bytes" << std::endl;
// 讀取文件壓縮類型
int compression_method = file_info.compression_method;
std::cout << "Compression method: " << compression_method << std::endl;
// 讀取文件修改時間
uLong modified_time = file_info.last_mod_file_time;
std::cout << "Last modified time: " << modified_time << std::endl;
// 讀取文件CRC值
uLong crc = file_info.crc;
std::cout << "CRC: " << crc << std::endl;
std::cout << std::endl;
}
// 關閉ZIP文件
unzClose(zip_file);
return 0;
}
在代碼中,將example.zip
替換為要讀取的ZIP文件的路徑。編譯并運行程序,它將輸出ZIP文件中每個文件的元數據。
編譯命令(使用g++):
g++ main.cpp -o main -lminizip -lz
運行命令:
./main
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。