Array
(
)

Compactar arquivo

Fnloiola
   - 19 ago 2013

Bom dia, tenho um sistema que preciso compactar um arquivo txt localmente e apos este arquivo ser compactado preciso fazer o upload, alguem tem alguma dica. Já li várias dicas na net só que nenhuma dá certo. O codigo abaixo se eu rodar local ele compacta o arquivo certinho quando faço local, mas se eu fizer o mesmo em uma estação da o seguinte erro:

Erro de Servidor no Aplicativo '/systemflex'.
--------------------------------------------------------------------------------

Não foi possível localizar uma parte do caminho 'C:\Nascol\CORRETO NASCOL 072013.txt.zip'.
Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.
Detalhes da Exceção: System.IO.DirectoryNotFoundException: Não foi possível localizar uma parte do caminho 'C:\arquivo\arquivo.txt.zip'.
Erro de Origem:

Exceção sem tratamento foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.
--------------------------------------------------------------------------------------
CODIGOS:
Index.cshtml
@using (Html.BeginForm("Upload", "Importacao", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<fieldset>
<legend>Empresa<img src="~/Content/img/progressbar.gif" style="width: 70px;" id="PBEmpresa" class="hide" /></legend>
<br />
<div class="float-left"><label class="negrito">Caminho</label></div>
<div class="clear"></div>
<div class="float-left">
<div style="position: absolute"><input id="fakeuploadEmpresa" name="fakeupload" class="fakeupload" type="text" value="" /></div>
<div style="position: relative"><input id="realuploadEmpresa" name="realupload" class="realupload" type="file" onchange=" fakeuploadEmpresa.value = this.value; " /></div>
</div>
<div class="float-left" style="margin-left: 5px;">
<input type="submit" value="" class="submiteImportar float-left" />
<img src="~/Content/img/lixeira-windows.png" class="hide" id="deletarEmpresa" />
</div>
<br />

</fieldset>
}
Controller.cs
[AcceptVerbs(HttpVerbs.Post)]
public void Upload(string id)
{
var com = new ComprimirZip();
var teste = com.Comprimir(this.Request.Files[0]);
Response.Write(teste);
}
ComprimirZip.cs
public string Comprimir(HttpPostedFileBase file)
{
var arq = file.FileName;

using (var zipPackage = ZipPackage.Open(file.FileName+".zip", FileMode.OpenOrCreate))
{
string destFilename = ".\\" + Path.GetFileName(file.FileName);
Uri zipPartUri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative));
if (zipPackage.PartExists(zipPartUri))
{
zipPackage.DeletePart(zipPartUri);
}
PackagePart zipPackagePart = zipPackage.CreatePart(zipPartUri, "", CompressionOption.Normal);
using (FileStream fileStream = new FileStream(file.FileName, FileMode.Open, FileAccess.Read))
{
using (Stream dest = zipPackagePart.GetStream())
{
CopyStream(fileStream, dest);
}
}
}
return ("flavio");
}