Stuart McLachlan
stuart at lexacorp.com.pg
Wed Feb 18 05:06:38 CST 2009
On 17 Feb 2009 at 10:30, Arthur Fuller wrote: > Pretty neat! It could use a third function that lists the files and folders > with a given zip file. Then it would be totally slick. Had to think about that one a bit :-) Because a Compressed (Zipped) folder can contain other folders, we need a recursive function, called by a wrapper function. Function EnumerateZipContents(ZipFileName As String) As Variant 'Returns an Array containing all folder and file names in the zip EnumerateZipContents = Split(ListFilesInZipFolder(ZipFileName), Chr$(13) & Chr$(10)) End Function Function ListFilesInZipFolder(ZipFileName As String) As String Dim oShellApp As Shell32.Shell Dim ofile As Object Dim strNames As String Set oShellApp = CreateObject("Shell.Application") For Each ofile In oShellApp.NameSpace(ZipFileName).Items If ofile.IsFolder Then strNames = strNames & "Fldr: " & ZipFileName & "\" & ofile.Name & Chr$(13) & Chr$(10) strNames = strNames & ListFilesInZipFolder(ZipFileName & "\" & ofile.Name) Else strNames = strNames & "File: " & ZipFileName & "\" & ofile.Name & Chr$(13) & Chr$(10) End If Next ListFilesInZipFolder = strNames End Function -- Stuart