文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>创建zip文件. (ICSharpCode.SharpZipLib)

创建zip文件. (ICSharpCode.SharpZipLib)

时间:2010-09-09  来源:无尽思绪

两种方式,但其实还是一种方式:

1.依托于DNN来创建,使用的是DNN自带的SharpZipLib.dll文件。

 

/// <summary>
        /// using DNN way for create zip file
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="files"></param>
        /// <returns></returns>
        public static bool CreateZipFile2(string fileName, LiftEngineDocumentCollection files)
        {
            bool isCreated = false;
            int level = 9;
            string path = fileName;
            FileStream baseOutputStream = null;
            try
            {
                baseOutputStream = File.Create(path);
                ZipOutputStream zipFile = null;
                try
                {
                    zipFile = new ZipOutputStream(baseOutputStream);
                    zipFile.SetLevel(level);
                    try
                    {
                        foreach (LiftEngineDocumentEntity entity in files)
                        {
                            string file = Path.GetFullPath(HttpRuntime.AppDomainAppPath + entity.FullPath);
                            if (File.Exists(file))
                            {
                                FileSystemUtils.AddToZip(ref zipFile, file, Path.GetFileName(file), "");
                            }
                        }
                        isCreated = true;
                    }
                    finally
                    {
                    }
                }
                catch (Exception exception1)
                {
                    Exception exc = exception1;
                    DotNetNuke.Services.Exceptions.Exceptions.LogException(exception1);
                    isCreated = false;
                }
                finally
                {
                    if (zipFile != null)
                    {
                        zipFile.Finish();
                        zipFile.Close();
                    }
                }
            }
            catch (Exception exception3)
            {
                Exception exception2 = exception3;
                DotNetNuke.Services.Exceptions.Exceptions.LogException(exception2);
                isCreated = false;
            }
            finally
            {
                if (baseOutputStream != null)
                {
                    baseOutputStream.Close();
                }
            }
            return isCreated;
        }

其中的LiftEngineDocumentCollection  是一个文件集合。使用的是LLBLGen来做DAL层。

 

参考代码:DotNetNuke.Entities.Modules.PaWriter.CreateZipFile()

 

第二种方式:使用的是ICSharpCode.SharpZipLib.dll文件,这个文件相对于DNN自带的要新一些。

/// <summary>
/// A method that creates a zip file
/// </summary>
/// <param name="zipFileStoragePath">the storage location</param>
/// <param name="zipFileName">the zip file name</param>
/// <param name="fileToCompress">the file to compress</param>
private void CreateZipFile(string zipFileStoragePath
    , string zipFileName
    , string fileToCompress)
{
    //create our zip file
    ZipFile z = ZipFile.Create(zipFileStoragePath + zipFileName);

    //initialize the file so that it can accept updates
    z.BeginUpdate();

    //add the file to the zip file
    z.Add(fileToCompress);

    //commit the update once we are done
    z.CommitUpdate();
    //close the file
    z.Close();
}

 这种方式有个问题,创建zip文件后,会带有目录。 

 

 

参考:

http://devpinoy.org/blogs/keithrull/archive/2008/01/25/how-to-create-zip-files-in-c-with-sharpziplib-ziplib.aspx
http://codecruncher.blogsome.com/2007/01/04/37/

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载