Título: Descomprimir carpetas
Publicado por: Lambda en 17 Junio 2006, 15:37 pm
Tngo un módulo para descomprimir Zips pero cuando descomprimo un zip que contenga carpetas no las crea, simplemente no las descomprime -.- alguien sabe como hacer pa que descomprima las carpetas, o algun código Private Type CBChar ch(4096) As Byte End Type
Private Type UNZIPUSERFUNCTION UNZIPPrntFunction As Long UNZIPSndFunction As Long UNZIPReplaceFunction As Long UNZIPPassword As Long UNZIPMessage As Long UNZIPService As Long TotalSizeComp As Long TotalSize As Long CompFactor As Long NumFiles As Long Comment As Integer End Type
Private Type UNZIPOPTIONS ExtractOnlyNewer As Long SpaceToUnderScore As Long PromptToOverwrite As Long fQuiet As Long ncflag As Long ntflag As Long nvflag As Long nUflag As Long nzflag As Long ndflag As Long noflag As Long naflag As Long nZIflag As Long C_flag As Long FPrivilege As Long Zip As String extractdir As String End Type
Private Type ZIPnames s(0 To 99) As String End Type Public Declare Function Wiz_SingleEntryUnzip Lib "unzip32.dll" (ByVal ifnc As Long, ByRef ifnv As ZIPnames, ByVal xfnc As Long, ByRef xfnv As ZIPnames, dcll As UNZIPOPTIONS, Userf As UNZIPUSERFUNCTION) As Long Public Sub UnZip(Zip As String, extractdir As String) On Error GoTo err_Unzip
Dim Resultado As Long Dim intContadorFicheros As Integer
Dim FuncionesUnZip As UNZIPUSERFUNCTION Dim OpcionesUnZip As UNZIPOPTIONS
Dim NombresFicherosZip As ZIPnames, NombresFicheros2Zip As ZIPnames
NombresFicherosZip.s(0) = vbNullChar NombresFicheros2Zip.s(0) = vbNullChar FuncionesUnZip.UNZIPMessage = 0& FuncionesUnZip.UNZIPPassword = 0& FuncionesUnZip.UNZIPPrntFunction = DevolverDireccionMemoria(AddressOf UNFuncionParaProcesarMensajes) FuncionesUnZip.UNZIPReplaceFunction = DevolverDireccionMemoria(AddressOf UNFuncionReplaceOptions) FuncionesUnZip.UNZIPService = 0& FuncionesUnZip.UNZIPSndFunction = 0& OpcionesUnZip.C_flag = 1 OpcionesUnZip.fQuiet = 2 OpcionesUnZip.noflag = 1 OpcionesUnZip.Zip = Zip OpcionesUnZip.extractdir = extractdir
Resultado = Wiz_SingleEntryUnzip(0, NombresFicherosZip, 0, NombresFicheros2Zip, OpcionesUnZip, FuncionesUnZip)
Exit Sub err_Unzip: MsgBox "Unzip: " + Err.Description, vbExclamation Err.Clear End Sub
Private Function UNFuncionParaProcesarMensajes(ByRef fname As CBChar, ByVal x As Long) As Long On Error GoTo err_UNFuncionParaProcesarMensajes
UNFuncionParaProcesarMensajes = 0
Exit Function err_UNFuncionParaProcesarMensajes: MsgBox "UNFuncionParaProcesarMensajes: " + Err.Description, vbExclamation Err.Clear End Function
Private Function UNFuncionReplaceOptions(ByRef p As CBChar, ByVal L As Long, ByRef m As CBChar, ByRef Name As CBChar) As Integer On Error GoTo err_UNFuncionReplaceOptions
UNFuncionParaProcesarPassword = 0
Exit Function err_UNFuncionReplaceOptions: MsgBox "UNFuncionParaProcesarPassword: " + Err.Description, vbExclamation Err.Clear End Function Public Function DevolverDireccionMemoria(Direccion As Long) As Long On Error GoTo err_DevolverDireccionMemoria
DevolverDireccionMemoria = Direccion
Exit Function err_DevolverDireccionMemoria: MsgBox "DevolverDireccionMemoria: " + Err.Description, vbExclamation Err.Clear End Function saludos
Título: Re: Descomprimir carpetas
Publicado por: Cicklow en 17 Junio 2006, 17:19 pm
yo uso un modulo que no usa librerias osea seria el codigo que vos tenes en la dll, creada en C, yo lo tengo en VB, pero en fin, lo podes encontrrar en www.planet-source-code.com (yo estoy laburando, pero kuando tenga tiempo te lo posteo aka)
|