COMPACTAR PASTA PEGANDO TODO CAMINHO
Boa noite pessoal,
Preciso compactar a pasta "202204" que fica nesse local "C:\Sistemas\Projetos\Sistema
fe\arquivos\procNFe\202204"
observação: 202204 é o ano e o mes.... entao no outro mes será 202205... por isso coloquei 2 combobox cbomes e cboano para definir qual mes(pasta compactar)
E preciso jogar esse arquivo compactado na C:\Sistemas\Projetos\Sistema\ExportarXML
Observação: esse caminho "C:\Sistemas\Projetos\Sistema\" é meu App.path
Então fiz assim:
Tudo funcionando perfeitamente... o arquivo é criado na pasta correta... com nome correto... contento os arquivos que estão na pasta de origem...
POREM.... quando abro o arquivo percebo que ele criou todas essas subpastas "Sistemas\Projetos\Sistema
fe\arquivos\procNFe\202204" que tenho q ir abrindo até chegar no arquivo.
Gostaria que dentro do arquivo compactado tivesse somente a pasta "202204" com seus arquivos.
Percebi também que ele tá colocando as pastas que está dentro diretório de destino ExportarXML dentro do arquivo compactado
Preciso compactar a pasta "202204" que fica nesse local "C:\Sistemas\Projetos\Sistema
fe\arquivos\procNFe\202204"
observação: 202204 é o ano e o mes.... entao no outro mes será 202205... por isso coloquei 2 combobox cbomes e cboano para definir qual mes(pasta compactar)
E preciso jogar esse arquivo compactado na C:\Sistemas\Projetos\Sistema\ExportarXML
Observação: esse caminho "C:\Sistemas\Projetos\Sistema\" é meu App.path
Então fiz assim:
Dim FileZipName As String, PathToCompress As String, DestPath As String, FullPathZip As String
Dim vMes As String, vAno As String
vMes = cboMes.Text "07
vAno = cboAno.Text "2021
"INICIAR COMPACTAÇÃO
If IniciaComponenteCompactacao Then
i = 0
"Caminho para comprimir arquivo
DestPath = DiretorioDestino
"nome do arquivo
NomeEmp = vRazao
NomeEmp = RemoveAcento(NomeEmp)
NomeEmp = Substitui(NomeEmp, ".,/", "", UM_A_UM)
NomeEmp = Substitui(NomeEmp, " ", "_", UM_A_UM)
FileZipName = NomeEmp & "_" & vMes & vAno & ".rar"
"local de destino + ficheiro.rar
DiretorioDestino = App.path & "\ExportarXML"
FullPathZip = Transforma(DiretorioDestino & IIf(Right(DiretorioDestino, 1) = "\", "", "\") & FileZipName)
DiretorioDestino = App.path & "
fe\arquivos\procNFe" & "\" & vAno & vMes
PathToCompress = Transforma(DiretorioDestino)
"Chama o compressor que se encontra instalado para o efeito.
If xWinRar <> "" Then
Shell xWinRar & " a " & FullPathZip & " " & PathToCompress, vbNormalFocus ", vbHide
Else
Shell xWinZip & " -a " & FullPathZip & " " & PathToCompress, vbNormalFocus ", vbHide
End If
DoEvents
End If
Tudo funcionando perfeitamente... o arquivo é criado na pasta correta... com nome correto... contento os arquivos que estão na pasta de origem...
POREM.... quando abro o arquivo percebo que ele criou todas essas subpastas "Sistemas\Projetos\Sistema
fe\arquivos\procNFe\202204" que tenho q ir abrindo até chegar no arquivo.
Gostaria que dentro do arquivo compactado tivesse somente a pasta "202204" com seus arquivos.
Percebi também que ele tá colocando as pastas que está dentro diretório de destino ExportarXML dentro do arquivo compactado
O que voce quer é uma opção do winrar mesmo. Se não me engano, -ep1. Então ficaria assim:
Caso não seja exatamente isso que queria, então seria bom consultar a documentação do Winrar para achar a opção que mais te satisfaz. Não é uma questão de código, essa parte parece ok, é sim uma opção do compactador.
"Chama o compressor que se encontra instalado para o efeito.
If xWinRar <> "" Then
Shell xWinRar & " a -ep1 " & FullPathZip & " " & PathToCompress, vbNormalFocus ", vbHide
Else
Shell xWinZip & " -a -ep1 " & FullPathZip & " " & PathToCompress, vbNormalFocus ", vbHide
End If
Caso não seja exatamente isso que queria, então seria bom consultar a documentação do Winrar para achar a opção que mais te satisfaz. Não é uma questão de código, essa parte parece ok, é sim uma opção do compactador.
KERPLUNK tu é um genio cara!
Obrigada
Obrigada
Tópico encerrado , respostas não são mais permitidas