// ziptest.cpp : Defines the entry point for the console application. // #ifndef _WIN32 #include "../config.h" #endif #include "boinc_zip.h" #include "filesys.h" #include // CMC -- test that we "co-exist" with the "stock" zlib library int do_gzip(const char* strGZ, const char* strInput) { // take an input file (strInput) and turn it into a compressed file (strGZ) // get rid of the input file after FILE* fIn = boinc_fopen(strInput, "rb"); if (!fIn) return 1; //error gzFile fOut = gzopen(strGZ, "wb"); if (!fOut) return 1; //error fseek(fIn, 0, SEEK_SET); // go to the top of the files gzseek(fOut, 0, SEEK_SET); unsigned char buf[1024]; long lRead = 0, lWrite = 0; while (!feof(fIn)) { // read 1KB at a time until end of file memset(buf, 0x00, 1024); lRead = 0; lRead = fread(buf, 1, 1024, fIn); lWrite = gzwrite(fOut, buf, lRead); if (lRead != lWrite) break; } gzclose(fOut); fclose(fIn); if (lRead != lWrite) return 1; //error -- read bytes != written bytes // if we made it here, it compressed OK, can erase strInput and leave boinc_delete_file(strInput); return 0; } int main(int argc, char* argv[]) { ZipFileList zflist; #ifdef _WIN32 boinc_filelist("c:\\temp", "", &zflist, SORT_NAME | SORT_ASCENDING); #else boinc_filelist("/tmp/junk", "", &zflist, SORT_NAME | SORT_ASCENDING); #endif int jj; char strTmp[128]; for (jj = 0; jj < zflist.size(); jj++) { printf("%s %d\n", zflist[jj].c_str(), zflist[jj].m_statFile.st_mtime); // now gzip it, silly but see how it goes! sprintf(strTmp, "%s.gz", zflist[jj].c_str()); do_gzip(strTmp, zflist[jj].c_str()); } #ifdef _WIN32 boinc_filelist("c:\\temp", "", &zflist, SORT_NAME | SORT_ASCENDING); boinc_zip(ZIP_IT, "c:\\temp\\newzip", &zflist); #else boinc_filelist("/tmp/junk/", "", &zflist, SORT_NAME | SORT_ASCENDING); boinc_zip(ZIP_IT, "./ziptest.zip", &zflist); #endif return 0; } const char *BOINC_RCSID_9851414a72 = "$Id$";