Moin,
hier ein kleines Tutorial, wie man aus einer VB.NET-Anwendung (bei mir ists 2008) heraus Dateien mit der 7-Zip-Konsole packt / entpackt / bearbeitet. Dabei wird 7-Zip als Prozess behandelt.
Weitere Befehle für die Konsole gibts in der 7-zip.chm.
Wer nun mit der erstellen Zip-Datei oder den entpackten Dateien noch weiterarbeiten möchte, der kann warten, bis die 7-Zip-Konsole fertig ist:
Das Programm selbst ist dann für diese Zeit allerdings "eingefroren". Man kann den kompletten Prozess natürlich mit einem BackgroundWorker abwickeln, wodurch das Hauptprogramm weiter genutzt werden kann, der 7-Zip-Thread wartet weiterhin wie gewünscht auf das Beenden der Konsole.
Weiterhin empfielt sich noch die Überprüfung, ob 7-Zip erfolgreich war oder nicht:
Den kompletten Code gibts hier:
Spoiler anzeigen
hier ein kleines Tutorial, wie man aus einer VB.NET-Anwendung (bei mir ists 2008) heraus Dateien mit der 7-Zip-Konsole packt / entpackt / bearbeitet. Dabei wird 7-Zip als Prozess behandelt.
Weitere Befehle für die Konsole gibts in der 7-zip.chm.
Wer nun mit der erstellen Zip-Datei oder den entpackten Dateien noch weiterarbeiten möchte, der kann warten, bis die 7-Zip-Konsole fertig ist:
Das Programm selbst ist dann für diese Zeit allerdings "eingefroren". Man kann den kompletten Prozess natürlich mit einem BackgroundWorker abwickeln, wodurch das Hauptprogramm weiter genutzt werden kann, der 7-Zip-Thread wartet weiterhin wie gewünscht auf das Beenden der Konsole.
Weiterhin empfielt sich noch die Überprüfung, ob 7-Zip erfolgreich war oder nicht:
VB.NET-Quellcode
- 'ExitCodes von 7-Zip
- Select Case SevenZip.ExitCode
- Case 0: MessageBox.Show("7-Zip: Erfolg")
- 'hier weitere Prozesse, z.B. Datei-Upload etc.
- Case 1: MessageBox.Show("7-Zip: Warnung")
- Case 2: MessageBox.Show("7-Zip: schwerer Fehler")
- Case 7: MessageBox.Show("7-Zip: Command Line-Fehler")
- Case 8: MessageBox.Show("7-Zip: Nicht genügend Speicher")
- Case 255: MessageBox.Show("7-Zip: vom Benutzer abgebrochen")
- End Select
Den kompletten Code gibts hier:
VB.NET-Quellcode
- Dim SevenZip as New System.Diagnostics.Process
- 'Pfad zur 7z.exe
- SevenZip.StartInfo.Filename = "C:\Programme\7-Zip\7z.exe"
- 'Parameter für die 7z-Konsole
- SevenZip.StartInfo.Arguments = "a C:\Testarchiv.zip C:\Datei1.txt C:\Datei2.txt"
- SevenZip.Start()
- 'Wartet bis 7-Zip fertig ist (=automat. geschlossen wurde)
- SevenZip.WaitForExit()
- 'ExitCodes von 7-Zip
- Select Case SevenZip.ExitCode
- Case 0: MessageBox.Show("7-Zip: Erfolg")
- 'hier weitere Prozesse, z.B. Datei-Upload etc.
- Case 1: MessageBox.Show("7-Zip: Warnung")
- Case 2: MessageBox.Show("7-Zip: schwerer Fehler")
- Case 7: MessageBox.Show("7-Zip: Command Line-Fehler")
- Case 8: MessageBox.Show("7-Zip: Nicht genügend Speicher")
- Case 255: MessageBox.Show("7-Zip: vom Benutzer abgebrochen")
- End Select
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Osiris85“ ()