2012-02-24 77 views
-1

我正在使用.Net框架2.0。我需要從文件夾路徑「D:\ Nagaraj \ New Project Read Document \ TCBILPOS \ TCBILPOS \ TCBILPOS \ FileBuild \ HOST」創建zip文件...在該主機文件夾中有7個txt文件。所以,現在我想在這個相同的文件夾路徑「D:\ Nagaraj \ New Project Read Document \ TCBILPOS \ TCBILPOS \ TCBILPOS \ FileBuild」中創建zip文件「HOST.zip」........提前致謝如何在asp.net中生成zip文件

+0

http://stackoverflow.com/questions/9426992/how-to-create-zip-file-in-asp-net – arunes 2012-02-24 09:15:05

+0

的重複這可以幫助你。 http://forums.asp.net/t/1086292.aspx – Junaid 2012-02-24 09:14:19

回答

0

看看這個link

您可以選擇使用第三方庫,也可以使用J#(這已經荏苒包括保持與Java庫的兼容性)。該鏈接中的完整源代碼。

0

沒有使用第三方..我們可以通過使用J#庫與C#做到這一點。 只需添加對vjslib.dll的引用並添加這些命名空間。

using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using java.io; 
using java.util.zip; 
using System.IO; 
using System.Text 

現在混合使用j#和C#進入圖片。類別FileOutputStreamZipOutputStreamFileInputStreamZipEntry是在zip壓縮中扮演重要角色的j#類。

StringBuilder sb = new StringBuilder(); 
    string ZipFileName = String.Format(@"C:\ZippedFolders\({0}).MyZip.zip",DateTime.Now.ToString("yyyyMMdd")); 
    string theDirectory = @"C:\Sarat"; 

    try 
    { 
     sb.Append(String.Format("Directory To Zip: {0}.<br/>", theDirectory)); 
     sb.Append(String.Format("Zip file: {0}.<br/>", ZipFileName)); 

     string[] allFiles = Directory.GetFiles(theDirectory, "*.*", SearchOption.AllDirectories); 

     if (System.IO.File.Exists(ZipFileName)) 
     { 
      System.IO.File.Delete(ZipFileName); 
      sb.Append(String.Format("Deleted old Zip file: {0}.<br/>", ZipFileName)); 
     } 


     FileOutputStream fos = new FileOutputStream(ZipFileName); 
     ZipOutputStream zos = new ZipOutputStream(fos); 
     zos.setLevel(9); 

     for (int i = 0; i < allFiles.Length; i++) 
     { 
      string sourceFile = allFiles[i]; 

      FileInputStream fis = new FileInputStream(sourceFile); 

      ZipEntry ze = new ZipEntry(sourceFile.Replace(theDirectory + @"\", "")); 
      zos.putNextEntry(ze); 

      sbyte[] buffer = new sbyte[1024]; 
      int len; 

      while ((len = fis.read(buffer)) >= 0) 
      { 
       zos.write(buffer, 0, len); 
      } 

      fis.close(); 
     } 

     zos.closeEntry(); 
     zos.close(); 
     fos.close(); 

     sb.Append(String.Format("Folder {0} Zipped successfuly to File {1}.<br/>", theDirectory, ZipFileName)); 


    } 
    catch (Exception eX) 
    { 
     sb.Append(String.Format("Error zipping folder {0}. Details: {1}. Stack Trace: {2}.<br/>", theDirectory, eX.Message, eX.StackTrace)); 
    } 
相關問題