2016-07-20 14 views
1

Ich bin ziemlich neu in der Entwicklung. Ich verwende vb6 bei meiner Arbeit und versuche derzeit, einen bestimmten Ordner einschließlich mehrerer Dateien zu komprimieren. Ist dies möglich, ohne Programme von Drittanbietern zu verwenden?Wie kann ich einen Ordner in vb6 ohne Verwendung von Drittanbieter-Tools zippen?

Alle Materialien, die ich bisher gefunden habe, ist über das Zippen nur einer Datei.

Danke :)

+1

Try [Google] implementieren (http://www.codeguru.com/vb/gen/vb_graphics/fileformats/article.php/c6743/Zip-and -Unzip-Using-VB5-oder-VB6.htm)? –

+1

Mögliches Duplikat von [Kann die Windows integrierte ZIP-Komprimierung gescriptet werden?] (Http://stackoverflow.com/questions/30211/can-windows-built-in-zip-compression-be-scripted) – jac

+1

Durch Dritte Programme meinst du externe DLLs? Sie werden es in VB6 sicherlich nicht selbst machen. Sie können Wrapper oder Klassen für zipp DLLs verwenden, aber ich glaube nicht, dass Sie eine Person sind, die Ihre eigene zip/unzip paclage erstellen möchte, nur um eine zip DLL zu vermeiden – dbmitch

Antwort

0

Sieht aus wie Folder.CopyHere helfen würde. Es benachrichtigt das Programm jedoch nicht, wenn die Kopie abgeschlossen ist.

Dim s As String 
s = "C:\FullPathToZipFile" 
'create a new zip file 
Open s For Binary As #1 
Dim zipd 
zipd = Array(80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) 
Dim zip(21) As Byte 
Dim i As Long 
For i = 0 To 21 
    zip(i) = zipd(i) 
Next 
Put #1, , zip 
Close #1 
Dim objShell As Object 
Set objShell = CreateObject("Shell.Application") 
Dim objZip As Object, objFolder As Object 
Set objZip = objShell.NameSpace(s) 
If Not objZip Is Nothing Then 
    Set objFolder = objShell.NameSpace("C:\FullPathToYourFiles") 
    If Not objFolder Is Nothing Then 
     objZip.CopyHere objFolder.Items 
    End If 
End If 

Alternativ (vielleicht) können Sie Compression API