COMPACTACAO

CAIO.FR.SP 14/10/2009 17:36:08
#325325
galera alguem aqui ja uso o 7zip pra fazer compactação de dados no visual basic?
to tentando usar ele, por ele ser gratuito
procurando na net a linha de comando dele, e achei uma assim.
dai fiz uma função de compactação e descompactação no vb.
so que nao ta dando certo. alguem pode da uma ajuda ai?
abaixo as linha de comapndo que eu encontrei
e as funções que eu criei.

7z a -tzip -r arquivos.zip [Ô]c:\Contas e Diversos\*.*[Ô]

esse comando pegaria todos os arquivos (o -r é para pegar subdiretorios) de c:\Contas e Diversos e compactaria num arquivo com nome de arquivos.zip.


  Function Compactar(Arquivo_Origem As String, Arquivo_destino As String) As Boolean
Dim comando As String
Compactar = False
comando = App.Path & [Ô]\7z.exe a -t7z[Ô]
comando = comando & [Ô] [Ô] & Arquivo_destino & [Ô].7z[Ô]
comando = comando & [Ô] [Ô] & Arquivo_Origem
Call Shell(comando, vbNormalFocus)
comando = [Ô]move *.7z[Ô]
If Not File_Exists([Ô]*.7z[Ô]) Then Exit Function
comando = comando & [Ô] [Ô] & LerINI([Ô]Dados[Ô], [Ô]backup[Ô], App.Path & [Ô]\config.ini[Ô])
Call Shell(comando, vbNormalFocus)
Compactar = True
End Function

Public Function Descompactar(Arquivo_Origem As String, Pasta_destino As String) As Boolean
Dim comando As String
comando = App.Path & [Ô]\7z.exe e[Ô]
comando = comando & [Ô] [Ô] & Arquivo_Origem & [Ô] -o[Ô]
comando = comando & [Ô] [Ô] & Pasta_destino
Call Shell(comando, vbHide)
End Function


galera alguem tem uma ideia?
JWCELYO 14/10/2009 19:09:55
#325339
caio tente assim

Function Compactar(Arquivo_Origem As String, Arquivo_destino As String) As Boolean
Dim comando As String
Compactar = False
comando = App.Path & [Ô]\7z.exe a -t7z[Ô]
comando = comando & [Ô] [Ô] & Arquivo_destino & [Ô].7z[Ô] & [Ô] [Ô] & Arquivo_Origem
Call Shell(comando, vbNormalFocus)
comando = [Ô]move *.7z[Ô]
If Not File_Exists([Ô]*.7z[Ô]) Then Exit Function
comando = comando & [Ô] [Ô] & LerINI([Ô]Dados[Ô], [Ô]backup[Ô], App.Path & [Ô]\config.ini[Ô])
Call Shell(comando, vbNormalFocus)
Compactar = True
End Function






Public Function Descompactar(Arquivo_Origem As String, Pasta_destino As String) As Boolean
Dim comando As String
comando = App.Path & [Ô]\7z.exe e[Ô]
comando = comando & [Ô] [Ô] & Arquivo_Origem & [Ô] -o[Ô] & [Ô] [Ô] & Pasta_destino
Call Shell(comando, vbHide)
End Function

CAIO.FR.SP 14/10/2009 19:34:12
#325342
JWCELYO


  Function Compactar(Arquivo_Origem As String, Arquivo_destino As String) As Boolean
Dim comando As String
Dim Pasta_Origem As String
Compactar = False
comando = App.Path & [Ô]\7z.exe a[Ô]
comando = comando & [Ô] [Ô] & Arquivo_destino & [Ô].7z[Ô]
comando = comando & [Ô] [Ô] & Arquivo_Origem
Call Shell(comando, vbNormalFocus)
For i = Len(Arquivo_Origem) To 1 Step -1
If Mid(Arquivo_Origem, i, 1) = [Ô]\[Ô] Then
Pasta_Origem = Mid(Arquivo_Origem, 1, i - 1)
Exit For
End If
Next i
If Not File_Exists(Pasta_Origem & [Ô]\[Ô] & Arquivo_destino & [Ô].7z[Ô]) Then Exit Function
comando = [Ô]move[Ô]
comando = comando & [Ô] [Ô] & Pasta_Origem
comando = comando & [Ô]\[Ô] & Arquivo_destino & [Ô].7z[Ô]
comando = comando & [Ô] [Ô] & LerINI([Ô]Dados[Ô], [Ô]backup[Ô], App.Path & [Ô]\config.ini[Ô])
comando = comando & [Ô]\[Ô] & Arquivo_destino & [Ô].7z[Ô]
Shell comando, vbNormalFocus
Compactar = True
End Function


na parte de compactação ta quase resolvido
ele ta gerando o arquivo cmpactado mas na pasta de origem
agora falata fazer ele mover esse arquivo compactado ate a pasta de backup
ate na parte em que a função verifica se o arquivo compactado existe ta funcionado, dai pra baixo, da um erro 53, [Ô]File not exist[Ô]
Tópico encerrado , respostas não são mais permitidas