none
Zipar uma pasta e seus arquivos dentro

Respostas

  • Alex,

     

    veja em:

    http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx?ReleaseId=8220

     

    Faça o download do arquivo ZipLib.msi e instale no seu computador

     

    Faça a referencia ao seu projeto:

    C:\Arquivos de programas\Microsoft\.NET Zip Library & Utilities\Ionic.Utils.Zip.dll

     

    Exemplo em Windows Form:

    Code Snippet

    Imports Ionic.Utils

    Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

     

    Using zip As New Zip.ZipFile("c:\temp\meuzip.zip")

    'adicionando um arquivo

    zip.AddFile("c:\temp\1028.mst")

    zip.AddFile("c:\temp\Setup.ini")

     

    'adicionando um diretório

    zip.AddDirectory("c:\temp\temp2")

    zip.Save()

    End Using

     

    End Sub

    End Class

     

     

    Se vc não deseja gravar o caminho de origem do arquivo ou diretório, basta informar "" no segundo parametro dos métodos .AddFile ou .AddDirectory.

     

    Neste caso os arquivos serão gravados na "raiz" do .zip.

     

    Code Snippet

    Using zip As New Zip.ZipFile("c:\temp\meuzip.zip")

    'adicionando um arquivo

    zip.AddFile("c:\temp\1028.mst", "")

    zip.AddFile("c:\temp\Setup.ini", "")

     

    'adicionando um diretório

    zip.AddDirectory("c:\temp\temp2", "")

    zip.Save()

    zip.Dispose()

    End Using

     

     

     

    Ajude a melhorar o nosso Forum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

     

    segunda-feira, 21 de abril de 2008 21:56

Todas as Respostas

  • Alex,

     

    veja em:

    http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx?ReleaseId=8220

     

    Faça o download do arquivo ZipLib.msi e instale no seu computador

     

    Faça a referencia ao seu projeto:

    C:\Arquivos de programas\Microsoft\.NET Zip Library & Utilities\Ionic.Utils.Zip.dll

     

    Exemplo em Windows Form:

    Code Snippet

    Imports Ionic.Utils

    Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

     

    Using zip As New Zip.ZipFile("c:\temp\meuzip.zip")

    'adicionando um arquivo

    zip.AddFile("c:\temp\1028.mst")

    zip.AddFile("c:\temp\Setup.ini")

     

    'adicionando um diretório

    zip.AddDirectory("c:\temp\temp2")

    zip.Save()

    End Using

     

    End Sub

    End Class

     

     

    Se vc não deseja gravar o caminho de origem do arquivo ou diretório, basta informar "" no segundo parametro dos métodos .AddFile ou .AddDirectory.

     

    Neste caso os arquivos serão gravados na "raiz" do .zip.

     

    Code Snippet

    Using zip As New Zip.ZipFile("c:\temp\meuzip.zip")

    'adicionando um arquivo

    zip.AddFile("c:\temp\1028.mst", "")

    zip.AddFile("c:\temp\Setup.ini", "")

     

    'adicionando um diretório

    zip.AddDirectory("c:\temp\temp2", "")

    zip.Save()

    zip.Dispose()

    End Using

     

     

     

    Ajude a melhorar o nosso Forum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

     

    segunda-feira, 21 de abril de 2008 21:56
  • Laercio,

     

    Eu tenho que determinar o nomes de cada arquivo? Ou

     

    Posso colocar só essa opção de diretório que ele zipa os arquivos dentro?

     

    E quando for instalar no cliente vou ter que instalar esse arquivo ZipLib.msi também?

     

    Obrigado

     

    segunda-feira, 21 de abril de 2008 22:11
  • Alex,

    Vou comentar melhor o código em anexo:

    Neste primeiro exemplo, estou compactando apenas os arquivos 1028.mst e Setup.ini

    Code Snippet

    Using zip As New Zip.ZipFile("c:\temp\meuzip.zip")


    'adicionando um arquivo

    zip.AddFile("c:\MSDN\1028.mst", "")


    'adicionando um arquivo

    zip.AddFile("d:\Windows\Setup.ini", "")

     

    zip.Save()

    zip.Dispose()

    End Using

     

     

    Neste segundo exemplo, estou compactando todos os arquivos dentro do diretório temp2

    Code Snippet

    Using zip As New Zip.ZipFile("c:\temp\meuzip.zip")

    'adicionando um diretório

    zip.AddDirectory("c:\temp\temp2", "")

    zip.Save()

    zip.Dispose()

    End Using

     

     

    E quando for instalar no cliente vou ter que instalar esse arquivo ZipLib.msi também?

    Quando vc gerar o kit de instalação da aplicação o "assembly do componente" será adicionado ao pacote de instalação.

     

    Espero ter ajudado!

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

     

    segunda-feira, 21 de abril de 2008 22:19
  • Cara desculpe tanta pergunta...

     

    E como faço para descompactar os arquivos?

     

    Obrigado

     

    segunda-feira, 21 de abril de 2008 22:23
  • Alex,

     

    Tudo bem!  pode mandar!

     

    Um exemplo em VB.NET para descompactar os arquivos:

     

    Code Snippet

     

    Try

    Using zip As ZipFile = ZipFile.Read(ZipFile)

    zip.ExtractAll(TargetDirectory, True)

    End Using

    Catch ex1 As System.Exception

    System.Console.[Error].WriteLine("exception: " + ex1)

    End Try

     

     

    TargetDirectory: Diretório de destino

     

     

    Espero ter ajudado!

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

    segunda-feira, 21 de abril de 2008 22:40
  • Valeu Laercio

     

    muito obrigado

    segunda-feira, 21 de abril de 2008 22:48
  • Fico feliz por ter ajudado!

     

    Até a próxima.

     

     

     

    terça-feira, 22 de abril de 2008 01:06
  • Laércio!

     

    Achei muito bom este tópido. Fiz os teste e funcionou. Mas...

    Arquivos acentuados deu problemas. Por acaso sabes como resolve-los

    Outra coisa! E a licença do ZilLib como é?

    segunda-feira, 12 de maio de 2008 08:14
  • Emilio,

     

    Fiz alguns e realmente existe um problema com acentuação no nome dos arquivos, eu vou passar um e-mail para o autor no Codeplex para ver se existe uma forma para contornar o problema, abra um novo post dentro da comunidade VB.NET & Express Edition reportado esse problema que eu dou um retorno assim que o meu e-mail for respondido.

     

    Sim, esse componente é freeware!

     


    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

    quarta-feira, 14 de maio de 2008 21:43
  • Emilio,

     

    Ocorre que a DotNetZip do codeplex não suporta arquivos com acentos.

    http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx?ReleaseId=8220

     

    Com isso, achei a SharpZipLib (também freeware), que suporta arquivos com acentos.

     

    Em anexo, um exemplo completo em VB.NET para Compactar e Descompactar arquivos com o componente SharpZipLib com suporte a arquivos com acentos 

    download:

    http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx

    e adicione a referencia ao projeto do arquivo ICSharpCode.SharpZipLib.dll

     

    Code Snippet

    Imports ICSharpCode.SharpZipLib.Checksums

    Imports ICSharpCode.SharpZipLib.Zip

    Imports ICSharpCode.SharpZipLib.GZip

    Imports System.IO

    Imports System.Text

     

    Private Sub ZipFiles()

    'criando o arquivo zip

    Using strmZipOutputStream As New ZipOutputStream(File.Create("c:\temp\MSDN.zip"))

    strmZipOutputStream.SetLevel(9) ' Highest Compression

    strmZipOutputStream.Finish()

    strmZipOutputStream.Close()

    End Using

    'adicionando os arquivos

    Using zipFile As New ZipFile("c:\temp\MSDN.zip")

    zipFile.BeginUpdate()

    'arquivos

    zipFile.Add("c:\temp\Laércio.txt")

    zipFile.Add("c:\temp\Açucar.txt")

    'diretórios

    zipFile.AddDirectory("c:\temp")

    zipFile.CommitUpdate()

    zipFile.Close()

    End Using

    End Sub

     

    Private Sub UnzipFiles()

    '

    'descompactar o arquivo "MSDN.zip" no diretório "c:\temp\Forum"

    Dim unzipFile As New ICSharpCode.SharpZipLib.Zip.FastZip

    unzipFile.ExtractZip("c:\temp\MSDN.zip", "c:\temp\Forum", ".*")

    End Sub

     

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

     

    sexta-feira, 16 de maio de 2008 21:22
  • Bom dia Laercio !

    Sou moderador dos fóruns do MSDN, preciso do seu e-mail. Favor entre em contato em v-harau@microsoft.com


    Harley Araujo - Microsoft LATAM Forum Support Engineer.
    Blog: http://www.forumguys.com.br/
    sexta-feira, 25 de março de 2011 15:10