如何在asp.net中生成zip文件

时间:2012-02-24 09:11:44

标签: asp.net

我正在使用.Net framework 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”........提前感谢< / p>

3 个答案:

答案 0 :(得分:0)

查看此link

您可以选择使用第三方库,也可以使用J#(包含压缩包以保持与Java库的兼容性)。该链接中的完整源代码。

答案 1 :(得分:0)

有大量zipping libraries,但我个人通常使用适当的命令行开关启动7zip进程。

答案 2 :(得分:0)

不使用第三方..我们可以通过在C#中使用J#库来实现。 只需添加对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#。类FileOutputStream ZipOutputStream FileInputStreamZipEntry是j#类,它们在zip压缩中起着重要作用。

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));
    }