[C,zlib] Zipowanie pliku txt

0

Witam
Piszę program który musi zzipować kilka plików w jedno archiwum żeby je później wysłać. Problem mam przy zipowaniu tych plików - używam do tego minizip-a zawartego w zlib-ie. Program będzie działał na linuksie, zamieniłem już nawet "\n" na "(char)13" żeby upewnić się że to nie wina innego kodowania końca linii. Kiedy zipuje pliki np png to wszystko jest ok ale po zzipowaniu plików tekstowych i rozpakowaniu archiwum pod windowsem (na linuksie wszystko działa ok - rozpakowują się poprawnie) zamiast plików tekstowych mam foldery o nazwie np plik1.txt. Czy ktoś spotkał się z takim problemem ? Niżej kod mojej funkcji zipującej - przekazuję do niej tylko ścieżki plików które wcześniej zamykam więc to raczej nie wina niezamkniętych plików.

void Zipuj(char* sciezka,char* label)
{

	zipFile plikZip;
	FILE* kompr;
	zip_fileinfo zipfi;
	void* extrafield_local=NULL;
	uInt size_extrafield_local=0;
	void* extrafield_global=NULL;
	uInt size_extrafield_global=0;
	unsigned len;
	char sciezkaZip[20],global_comment[40]="komentarz";

	strcpy(sciezkaZip,label);
	strcat(sciezkaZip,".zip");
	if( (plikZip=zipOpen(sciezkaZip, APPEND_STATUS_ADDINZIP)) ==NULL)
	{
		plikZip=zipOpen(sciezkaZip,0);
	}
	kompr=fopen(sciezka,"rb");
	len=MAX_BUF;
	unsigned char *buf=new unsigned char[len];
	
printf(":%s:\n",sciezka);
	zipOpenNewFileInZip(plikZip,
                       sciezka,
                       &zipfi,
                       extrafield_local,
                       size_extrafield_local,
                       extrafield_global,
                       size_extrafield_global,
                       NULL,
                       Z_DEFLATED,
                       Z_DEFAULT_COMPRESSION);

	do{
		len=(int)fread(buf,1/*sizeof(unsigned char)*/,len,kompr);
	
		if (len>0)
        	{
			zipWriteInFileInZip(plikZip,
                       	buf,
			len);
		}
	}while(len>0);

	fclose(kompr);
	delete buf;

	zipCloseFileInZip(plikZip);
	zipClose(plikZip, global_comment);
	
}

0

kompresja wyglada ok, wrzuc moze kawalek, ktory jest odpowiedzialny za dekompresje.

0

Nie dekompresuję tego swoim programem tylko ma być to dekompresowane dowolnym "rozpakowywaczem" obsługującym zip-a (użytkownik pobiera sobie paczkę ze strony i rozpakowuje u siebie). Kiedy rozpakowuję to Ark-iem na linuksie to jest ok a kiedy rozpakuję to np. WinRAR-em na windowsie to wychodzą foldery zamiast plików tekstowych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1