Hallo zusammen,
seit gestern kämpfe ich mit dem Problem dass 7-Zip, als Prozess aufgerufen, nicht die Datei packt welche ich dem Prozess mitteile. Statt desen packt es den Inhalt des Debug Ordners in dem meine Test.exe liegt. Bzw. wenn ich das Ganze als AddIn .dll erzeuge packt es den Ordnerinhalt der im Programm (CAD) geöffneten Datei.
Das heißt das erstellen des Archivs im Zielordner funktioniert, allerdings ist der Inhalt ein vollständig anderer; was irgendwie ungünstig ist.
Ich habe die Übergabe der ProzessStartInfo auf verschiedene Art variiert aber das Ergebnis ist immer das Gleiche.
Vielleicht kann sich den folgenden Code mal jemand anschauen und hat eine Idee wo mein Fehler liegt.
Spoiler anzeigen
Entpacken funktioniert wie gewünscht.
Führe ich den obigen Code in VBA angepasst auf ShellAndWait aus funktioniert es problemlos.
Vielen Dank für die Hilfe
Grüße 3D_CAD
seit gestern kämpfe ich mit dem Problem dass 7-Zip, als Prozess aufgerufen, nicht die Datei packt welche ich dem Prozess mitteile. Statt desen packt es den Inhalt des Debug Ordners in dem meine Test.exe liegt. Bzw. wenn ich das Ganze als AddIn .dll erzeuge packt es den Ordnerinhalt der im Programm (CAD) geöffneten Datei.
Das heißt das erstellen des Archivs im Zielordner funktioniert, allerdings ist der Inhalt ein vollständig anderer; was irgendwie ungünstig ist.
Ich habe die Übergabe der ProzessStartInfo auf verschiedene Art variiert aber das Ergebnis ist immer das Gleiche.
Vielleicht kann sich den folgenden Code mal jemand anschauen und hat eine Idee wo mein Fehler liegt.
VB.NET-Quellcode
- Private Const _PathZipProgram As String = "C:\program files\7-Zip\"
- Public Sub Sichern()
- Dim sSourcePath, sSourceFile01, sSourceFile02, sTargetPath, sTargetFileName01, sTargetFileName02, strDate As String
- sSourcePath = "C:\TempTest\"
- sSourceFile01 = "Datei_01.txt"
- sSourceFile02 = "Ordner_01"
- sTargetPath = "C:\TempTestEntpackt\"
- strDate = Format(Now, "yyyy-mm-dd h-mm-ss")
- sTargetFileName01 = "Datei" & strDate
- sTargetFileName02 = "Ordner" & strDate
- Call SevenZipZip(sSourcePath, sSourceFile01, sTargetPath, sTargetFileName01)
- Call SevenZipZip(sSourcePath, sSourceFile02, sTargetPath, sTargetFileName02)
- End Sub
- Private Sub SevenZipZip(sSourcePath As String, sSourceFile As String, sTargetPath As String, sTargetFileName As String)
- Dim FullFileNameZipFile As String
- FullFileNameZipFile = sTargetPath & sTargetFileName & ".7z"
- Dim FullFileNameSourceFile As String
- FullFileNameSourceFile = sSourcePath & sSourceFile
- Dim SevenZip As New Process
- SevenZip.StartInfo.FileName = _PathZipProgram & "7z.exe"
- SevenZip.StartInfo.Arguments = String.Format("a -p4711 {0}{1}{0} -o{0}{2}{0}", Chr(34), FullFileNameZipFile, FullFileNameSourceFile)
- SevenZip.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
- SevenZip.Start()
- SevenZip.WaitForExit()
- End Sub
- Private Sub SevenZipUnzip(SourceFile As String, TargetFolder As String)
- Dim SevenZip As New Process
- SevenZip.StartInfo.FileName = _PathZipProgram & "7z.exe"
- SevenZip.StartInfo.Arguments = String.Format("x -aoa -r -p4711 {0}{1}{0} -o{0}{2}{0} *.*", Chr(34), SourceFile, TargetFolder)
- SevenZip.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
- SevenZip.Start()
- SevenZip.WaitForExit()
- End Sub
Entpacken funktioniert wie gewünscht.
Führe ich den obigen Code in VBA angepasst auf ShellAndWait aus funktioniert es problemlos.
Vielen Dank für die Hilfe
Grüße 3D_CAD