Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

notax

compactar pasta

Recommended Posts

Boa tarde.

 

Sou programador asp e estou apanhando aqui.

 

Preciso compactar remotamente pastas (não arquivos) e em asp clássico sem componentes tava bem complicado.

 

Daí resolvi tentar em aspx e até já consegui algumas coisas, mas não exatamente o que procuro, por exemplo, o script que colo abaixo compacta arquivos, de qq forma eles ficam com a extensão errada... mas até funciona...

 

O que preciso seria adaptar o script, mas não to conseguindo...

 

Estou usando dreamweaver (não tenho visual studio) e o script rodara no server e será executado pela Web...

 

Como funciona: meu sistema envia via querystring a variavel pasta que tem o endereço físico completo da onde a pasta a ser compactada está no servidor, exemplo:

pasta = c:\_dados\temp

 

preciso compactar tudo que tem dentro desta página e salvar dentro da própria pasta com o nome: zipado.zip, ex.: c:\_dados\temp\zipado.zip

 

O script que achei foi esse abaixo:

 

<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.IO.Compression" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
// Especifique a pasta que será listada na combo e o destino do .ZIP
    string pasta = @"\zipar\";
protected void Page_Load(object sender, EventArgs e)
{
        if (!IsPostBack)
    {
        System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(Request.ServerVariables["APPL_PHYSICAL_PATH"] + pasta);
      System.IO.FileInfo[] fi = di.GetFiles();
      DropDownList1.Items.Add("== Escolha um arquivo ==");
      foreach (System.IO.FileInfo arquivo in fi)
      DropDownList1.Items.Add(arquivo.Name);
   }
}

protected void  Button1_Click(object sender, EventArgs e)
{
        if (DropDownList1.SelectedValue != "== Escolha um arquivo ==")
        {
            Byte[] arquivoOriginal = File.ReadAllBytes(Request.ServerVariables["APPL_PHYSICAL_PATH"] + pasta + DropDownList1.SelectedValue);
            FileStream arquivoDestino = File.Create(Request.ServerVariables["APPL_PHYSICAL_PATH"] + pasta + DropDownList1.SelectedValue + ".zip");
            using (GZipStream zip = new GZipStream(arquivoDestino, CompressionMode.Compress, false))
            {
                zip.Write(arquivoOriginal, 0, arquivoOriginal.Length);
                zip.Close();
            }
            Response.Write("Compactei!!!");
        }
        else
        {
            Response.Write("Escolha um arquivo!!");
        }
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        <asp:DropDownList ID="DropDownList1" runat="server">
        </asp:DropDownList>
   
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click"
            Text="compactar" />
   
    </div>
    </form>
</body>
</html>

Alguém pode dar uma força?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.