>>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
>
thanks