compactar pasta
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?
Discussão (1)
Carregando comentários...