Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi.

Ich schreibe aktuell eine kleine Exe, die ein embedded Zip-File auf die Festplatte extrahieren soll.

Habe das einmal mit einer Zip gemacht, die ca. 200 MB groß ist.

Jetzt möchte/muss ich aber eine Zip-Datei einbinden, die 20 GB groß ist.

Und da streikt der Compiler mit "Für diesen Vorgang ist nicht genügend Speicher verfügbar.".

Habe jetzt etwas gegoogelt und angeblich soll es daran liegen, dass der RAM nicht ausreicht (habe ja "nur" 8GB Ram im Rechner).

Frage: Muss ich tatsächlich auf einem Rechner compilieren, der über 20 GB Ram hat?

Meinentwegen kann das Kompilieren auch lange dauern, hauptsache er tut es.

Ich arbeite mit Visual Studio 2013 auf einem Windows 8.1 System mit 64 Bit.

Gibt es vllt Optionen, die das Kompilieren auf die auslagerungsdatei auslagern oder sonst etwas?

Das muss ddoch in der heutigen Zeit möglich sein :/

Ansonsten, gibt es noch andere Möglichkeiten? Ich brauche das Zip-File eingebettet in der Exe-Datei :/

Freue mich über jeden Tipp :)

Viele Grüße

XspYroX

Die mir bekannten SFX Komponenten (von 7zip, WinRar, etc.) nutzen einen Programmstub, welcher einfach vor die gepackten Daten kopiert wird und welcher sein Ende erkennt - die Daten werden also nicht als Resource eingepackt.

Versuch mal, ob Deine ZIP-Entpackmethode ungültige Daten am Anfang überspringt - wenn ja, sollte es reichen das ZIP hinter deine Exe zu kopieren (in etwa: copy /b my.exe + my.zip result.exe) und die entstandene Exe zu entpacken :)

Ob eine 20 GB große selbstextrahierende Datei aber die feine Art ist, wage ich zu bezweifeln..

  • Autor

Ich möchte eine "one-click" und "one-file" lösung für mein Vorhaben (extrahieren einer zip-datei an einen bestimmten ort, wenn bestimmte voraussetzungen gegeben sind).

Würde es gerne ohne eine ausgelagerte zip-datei machen :/

Gibt's da irgend einen Weg?

  • Autor

@RipperFox:

Sowas ähnliches hatte ich vorher auch schonmal versucht. Ich muss aber noch etwas Logik und Abfragen vor das Entpacken bauen, daher reicht in normels SFX leider nicht :(

  • Autor

Irgendwie schon... wollte es nur komplett selbst programmieren und nicht auf MSI-builder o.ä. zurückgreifen :)

Aber ich habe jetzt einen mittelguten Weg gefunden, den ich gerade Teste. Dabei wird aber dann zwangsweise die Zip-Datei ausgelagert...

Trotzdem komisch, dass es da beim Kompilieren probleme gibt. Auch wenn das nicht die feine Art ist, sollte sowas im Jahr 2014 doch schon irgendwie möglich sein.... Also ist jetzt mein Gedanek dazu ;)

Trotzdem danke :)

Aber ich habe jetzt einen mittelguten Weg gefunden, den ich gerade Teste. Dabei wird aber dann zwangsweise die Zip-Datei ausgelagert.
Das heißt, du hast die Prämisse des hier beschriebenen Problems mal eben über Bord geworfen.

Auch wenn das nicht die feine Art ist, sollte sowas im Jahr 2014 doch schon irgendwie möglich sein....
Ist es vermutlich auch. Aber anscheinend halten die, die so etwas umsetzen könnten, das nicht für notwendig. In etwa so wie 150 Meter lange Kettensägen.
  • Autor
Das heißt, du hast die Prämisse des hier beschriebenen Problems mal eben über Bord geworfen.

Ist es vermutlich auch. Aber anscheinend halten die, die so etwas umsetzen könnten, das nicht für notwendig. In etwa so wie 150 Meter lange Kettensägen.

Die Prämisse MUSSTE ich über Bord werfen, da es anscheinend so einfach nicht machbar ist. Technisch nicht machbar. Da kann ich mich hinsetzen und weinen oder ich beiß in den sauren Apfel und muss nen anderen Weg nehmen :/

Naja, das Beispiel mit der Kettensäge trifft es nicht ganz.

Es ging mir ja um die Frage, ob es theoretisch überhaupt möglich ist.

Eine 150 meter lange Kettensäge ist theoretisch ja möglich ;)

Aber ok, Thema erledigt :)

Danek an alle Helfenden =)

  • Autor
Mit genügend Arbeitsspeicher ist deine tausend GB große Datei in deine Exe zu compilieren auch möglich...

Hab auch was davon gelesen, dass es vllt auch an dem Limit von 32 Bit liegt...

Habs jetzt nicht mit einer 4,1 GB großen Datei probiert...

Die Fehlermeldung kam auch fast sofort, insofern hat er vllt einfach die Größe der Zip-Ressource geprüft und gemerkt, dass die zu groß ist...

Und ich habe das Projekt schon auf 64-Bit kompilieren gestellt. Aber Visual Studio gibts wohl nur in 32-Bit und da könnte es dann haken :/

Egal, Solved somehow ;)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.