>? 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 && edited > > 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?