Jag har en komprimerad mapp; "c:\Comp.zip". I denna mapp ska jag samla ett antal txt-filer som ska hämtas via ftp (som en zip-fil). "Komprimerade mappar" är bara lite socker på utforskaren, är shell som spelar dig ett spratt, bara ett plugin till utforskaren med andra ord. Om du ska ha komprimering i filsystemet så får du helt enkelt slänga igång den som finns i ntfs, men jag antar att det inte är det du vill. För att kunna lägga in saker i zipfiler så får du helt enkelt leta rätt på lite komponenter som kan göra jobbet åt dig Känner inte till om det finns något gratis-verktyg för att hantera ZIP i VBA. Jag har använt DynaZip (http://www.innermedia.com/dz/index.htm) till detta tidigare, kanske kan vara till hjälp. Tack för era svar! Efter lite grävande på bl a MSDN så hittade jag en metod som heter CopyHere. Denna kod fungerar så jag kan lägga till filer i en existerande .zip-fil med hjälp av Windows inbyggda stöd för zip. Däremot frågar den om jag vill ersätta existerande filer, vilket den inte borde göra eftersom metoden ska tillåta bortkoppling av varningen. Tydligen fungerar inte bortkopplingen av varningen. Jag löste det med hjälp avKomprimerad mapp i VBA
I VBA(Access2003) försöker jag kopiera en fil; "c:\Testfil.txt" till den komprimerade mappen:
FileCopy "c:\Testfil.txt", "c:\Comp.zip\Testfil.txt"
...men får felmeddelande att sökvägen inte kan hittas. Jag trodde att man behandlade komprimerade mappar på samma sätt som okomprimerade, men så är det kanske inte.
Jag har testat både med och utan ".zip" i sökvägen, men med samma resultat.
Någon som kan tipsa om hur jag ska gå tillväga?
:-)
HåkanSv: Komprimerad mapp i VBA
Sv: Komprimerad mapp i VBA
/JohanSv: Komprimerad mapp i VBA
*****************************************************************
Private Sub cmdZip_Click()
On Error GoTo Err_cmdZip_Click
'Håkan Karlsson, 2007-07-18
Dim objShell As New Shell32.Shell
Dim objFolderZip As Shell32.Folder
Dim AttZippa As String
Set objFolderZip = objShell.Namespace("C:\TestZip.zip")
AttZippa = "c:\treeview.txt"
objFolderZip.CopyHere AttZippa, 20
'4=Visa inte progressbar, 16=Svara "Ja till alla" om en fråga visas
AttZippa = "c:\innehåll.txt"
objFolderZip.CopyHere AttZippa, 20
Exit_cmdZip_Click:
Set objFolderZip = Nothing
Exit Sub
Err_cmdZip_Click:
MsgBox Err.Description
Resume Exit_cmdZip_Click
End Sub
*************************************************************************
Någon som kan förklara varför "Vill du ersätta..." visas ändå?
:-)
HåkanSv: Komprimerad mapp i VBA
http://www.rondebruin.nl/windowsxpzip.htm
där det beskrivs hur man skapar en tom zipfil utan några tilläggsprogram.
:-)
Håkan