Updates?

Also ich habs jetzt geschafft,dass die Dateien gedownloaded und entpackt werden soweit ich es möchte...

Nun soll er die Datei die zum download führt (Down.exe) nach dem ausführen gelöscht werden und die Dateien die heruntergeladen werden in folgendes verzeichnis gemoved werden: "C:\Programme\DeckButler"..

Angehängt findet ihr die 3 Dateien
Main.cpp
Unzip.cpp
Unzip.h

und das kompilierte Programm "Down.exe"
 
Zuletzt bearbeitet:
Pushen ist nicht erlaubt, Rocky! Wie soll ein Programm sich selbst löschen? Da es gerade verwendet wird kann es ja nicht sich selbst löschen.
 
Ich dachte evtl es erstellt eine bat datei die das programm nach dem schliessen schliest und sich dann löscht wenn das möglich wäre....

Wie würde das mit dem unzip in ein bestimmtes verzeichnis gehen?

Ein Verzeichnis zu erstellen schaffe ich schonmal jetzt sollten die Dateien nur noch in den ordner gemoved werden wie geht das?
Wäre gut,wenn auch ohne pfadangabe zur quelldatei!!

Aktualisierter Code im Anhang
 

Anhänge

  • DeckButler download.zip
    77,9 KB · Aufrufe: 16
Zuletzt bearbeitet:
Lieber Rocky,

ich habe jetzt mehrfach Beiträge von dir löschen müssen die das Ziel hatten, dein Thema zu pushen.
Dies ist bei uns unerwünscht. Daher bitte ich dich hiermit, etwas Geduld walten zu lassen und
keine weiteren "Push-Beiträge" zu schreiben.

Danke und Gruß,
Markus
 
Ich weiss nun,dass es mit "ZIP_filename" geht jedoch weiss ich jetzt nicht wie und. Wo ich es einfügen soll..
Könnte mir kemand ein beispiel an meiner "main.cpp",sofern das dorthinein gehört
 
Was ist ZIP_filename? Das finde ich nirgends in der unzip.h. Wir liefern dir nicht den Code einfach so frei Haus, wir wollen dich dazu animieren selber zu überlegen und dann zum Ergebnis zu kommen, alles andere bringt dir im Endeffekt nichts ;)
 
Folgendes kann ich finden:

Code:
ZRESULT UnzipItem(HZIP hz, int index, const TCHAR *fn);
ZRESULT UnzipItem(HZIP hz, int index, void *z,unsigned int len);
ZRESULT UnzipItemHandle(HZIP hz, int index, HANDLE h);
// UnzipItem - given an index to an item, unzips it. You can unzip to:
// to a pipe:             UnzipItemHandle(hz,i, hpipe_write);
// to a file (by handle): UnzipItemHandle(hz,i, hfile);
// to a file (by name):   UnzipItem(hz,i, ze.name);
// to a memory block:     UnzipItem(hz,i, buf,buflen);
// In the final case, if the buffer isn't large enough to hold it all,
// then the return code indicates that more is yet to come. If it was
// large enough, and you want to know precisely how big, GetZipItem.
// Note: zip files are normally stored with relative pathnames. If you
// unzip with ZIP_FILENAME a relative pathname then the item gets created
// relative to the current directory - it first ensures that all necessary
// subdirectories have been created. Also, the item may itself be a directory.
// If you unzip a directory with ZIP_FILENAME, then the directory gets created.
// If you unzip it to a handle or a memory block, then nothing gets created
// and it emits 0 bytes.
ZRESULT SetUnzipBaseDir(HZIP hz, const TCHAR *dir);
// if unzipping to a filename, and it's a relative filename, then it will be relative to here.
// (defaults to current-directory).

Ich gehe jetzt mal davon aus,dass man "// to a file (by name): UnzipItem(hz,i, ze.name);" benutzen muss. Ich weiss allerdings nicht,wie ich es richtig mache.
 
Du kannst im letzten Parameter den Ausgabenamen angeben. Du hast also deinen Basispfad, z.B. C: und fügst dann den internen Pfad der Datei an (den du ja in ze.name hast) und extrahierst dann dahin.
 
Also wenn ich meine funktion void unzip1 nehme dann so:

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++)
  { GetZipItem(hz,i,&ze);
    UnzipItem(hz,i,ze.name);
  }

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++)
{ GetZipItem(hz,i,&ze);
UnzipItem(hz,i,C:\\Programme\\Test); <----------- "ze.name" durch pfad ersetzt
}
 
Zurück