Chilkat's ZIP control has a "to ram" option.
>>>the file's folder position is not fixed.
>>>Need to cross the tree.
>>>I need something similar to ADIR ()
>>
>>This will return .T. if a file or a folder exists somewhere in the zip file and could be extracted.
>>
>>
>>? ExtractFileOrFolderInZipFile(m.ZipFile, m.FileOrFolderToExtract, m.TargetFolder)
>>
>>FUNCTION ExtractFileOrFolderInZipFile(ZipFile AS String, ToExtract AS String, Location AS String, ShellExplorer AS Object, Tree AS String)
>>
>> LOCAL ShellObject
>>
>> IF PCOUNT() < 4
>> m.ShellExplorer = CREATEOBJECT("Shell.Application")
>> m.Tree = ""
>> ENDIF
>>
>> FOR EACH m.ShellObject IN m.ShellExplorer.NameSpace(m.ZipFile + IIF(EMPTY(m.Tree),"","\" + m.Tree)).items
>>
>> IF UPPER(m.ShellObject.Name) == UPPER(m.ToExtract)
>> m.ShellExplorer.NameSpace(m.Location).CopyHere(m.ShellExplorer.NameSpace(m.ZipFile).items.Item(m.Tree + m.ToExtract))
>> RETURN .T.
>> ELSE
>> IF m.ShellObject.IsFolder AND ExtractFileOrFolderInZipFile(m.ZipFile,m.ToExtract,m.Location,m.ShellExplorer,m.Tree + m.ShellObject.Name + "\")
>> RETURN .T.
>> ENDIF
>> ENDIF
>>
>> ENDFOR
>>
>> RETURN .F.
>>
>>ENDFUNC
>>
>
>What if I want to extract the files into ram, without passing for a file?