Updates?

Überleg doch mal: Der dritte Parameter von UnzipItem ist der Name der Ausgabedatei. Welche Variable beinhaltet den korrekten Ausgabepfad? Die musst du an UnzipItem übergeben.
 
UnzipItem(hz,i,ze.name);

hz = Eingabe Ort
i = PFAD WOHIN <------------- das müsste der ausgabepfad sein oder
ze.name = Name der Ausgabedatei

ALSO:

C:
void unzip1()
{
 
  HZIP hz = OpenZip("C:\\Programme\\DeckButler.zip",0);
  ZIPENTRY ze; GetZipItem(hz,-1,&ze); int numitems=ze.index;
  for (int i=0; i<numitems; i++)
  {
        std::string szBasePath = "C:\\Programme\\Test\\";
        szBasePath = i;
    GetZipItem(hz,i,&ze);
    UnzipItem(hz,i,ze.name);
  }
  CloseZip(hz);
}
 
Ok, jetzt bin sogar ich mit meiner Geduld am Ende, da kannst du dich wirklich "von" schreiben, das braucht einiges...

Code:
std::string szBasePath = "C:\";
szBasePath += ze.name;
UnzipItem(hz, i, szBasePath.c_str());
 
na klar jetzt fällts mir auch wieder ein....

Könntest dus mir noch so machen,dass es auf

C:\Dokumente und Einstellungen\BENUTZERNAME\

geht

bisher habe ich nur normal konsole ohne winapi gemacht deshalb verstehe ich davon nicht allzu viel
 
Nein, das kannst du jetzt selber, du hast alle Funktionen und alles wurde bereits gezeigt, wie es funktioniert.
 
ok..

es gibt nur noch ein prob und zwar hier:

C:
void unzip1()
{
  HZIP hz = OpenZip("C:\\Programme\\DeckButler.zip",0);
  ZIPENTRY ze; GetZipItem(hz,-1,&ze); int numitems=ze.index;
  for (int i=0; i<numitems; i++)
  {
	std::string szBasePath = "C:\\Programme\\DeckButler\\";
    szBasePath += ze.name;
	GetZipItem(hz,i,&ze);
	UnzipItem(hz, i, szBasePath.c_str());
	//UnzipItem(hz, i, ze.name);
  }
  CloseZip(hz);
}

void unzip2()
{
  HZIP hz = OpenZip("C:\\Programme\\Programmdateien.zip",0);
  ZIPENTRY ze; GetZipItem(hz,-1,&ze); int numitems=ze.index;
  for (int i=0; i<numitems; i++)
  { 
	std::string szBasePath = "C:\\Programme\\DeckButler\\";
    szBasePath += ze.name;
	GetZipItem(hz,i,&ze);
	UnzipItem(hz, i, szBasePath.c_str());
	//UnzipItem(hz, i, ze.name);
  }
  CloseZip(hz);
}

Beide sollen ja ins gleiche Verzeichnis extrahiert werden jedoch extrahiert das programm nur die "Programmdateien" und den "DeckButler" nicht das verstehe ich nicht so ganz es hat doch davor so gut geklappt
 
Entweder du rufst unzip1 nicht auf, DeckButler.zip existiert nicht oder die Dateien können da nicht erstellt werden.
 
Du musst GetZipItem natürlich vor dem Zuweisen an den Pfad aufrufe, sonst hast du ja nicht den rechten Namen drin.
 
Aso ja klar

also anstatt

C:
void unzippd()
{
  HZIP hz = OpenZip("C:\\Programme\\Programmdateien.zip",0);
  ZIPENTRY ze; GetZipItem(hz,-1,&ze); int numitems=ze.index;
  for (int i=0; i<numitems; i++)
  { 
    std::string szBasePath = "C:\\Programme\\DeckButler\\";
    szBasePath += ze.name;
    GetZipItem(hz,i,&ze);
     UnzipItem(hz, i, szBasePath.c_str());
     //UnzipItem(hz, i, ze.name);
  }
  CloseZip(hz);
}

folgendes:

C:
void unzippd()
{
  HZIP hz = OpenZip("C:\\Programme\\Programmdateien.zip",0);
  ZIPENTRY ze; GetZipItem(hz,-1,&ze); int numitems=ze.index;
  for (int i=0; i<numitems; i++)
  { 
    GetZipItem(hz,i,&ze);
    std::string szBasePath = "C:\\Programme\\DeckButler\\";
    szBasePath += ze.name;
    UnzipItem(hz, i, szBasePath.c_str());
    //UnzipItem(hz, i, ze.name);
  }
  CloseZip(hz);
}
 

Neue Beiträge

Zurück