C# Note17: 使用Ionic.Zip.dll实现解压缩文件

首先下载ionic.Zip.dll,然后在项目中添加该引用,之后就可以在cs中使用了:

        using Ionic.Zip;  
   
      #region Ionic.Zip压缩文件
        private readonly string zipFileName = "testzip";
        private readonly string destinationPath;
        private readonly string destinationPathPrefix = "E:\\";

        //压缩方法一
        public void ExeCompressOne()
        {
            string timeStamp = DateTime.Now.ToString("yyMMddHHmmssff");
            destinationPath = destinationPathPrefix + zipFileName + timeStamp;
            string destinationFilePath = destinationPath + ".zip";

            //ZipFile实例化一个压缩文件保存路径的一个对象zip
            using (ZipFile zip = new ZipFile(destinationFilePath, Encoding.Default))
            {
                //压缩率
                zipFile.CompressionLevel = CompressionLevel.Level9;
                zipFile.UseZip64WhenSaving = Zip64Option.Never;
                //加密压缩
                zip.Password = "123456";
                //将要压缩的文件夹添加到zip对象中去(要压缩的文件夹路径和名称)
                zip.AddDirectory(destinationPath);
                //将要压缩的文件添加到zip对象中去,如果文件不存在抛错FileNotFoundExcept
                //zip.AddFile(@"E:\\yangfeizai\\12051214544443\\"+"Jayzai.xml");
                zip.Save();
            }
        }
        
        //压缩方法二
        public void ExeCompressTwo()
        {
            string timeStamp = DateTime.Now.ToString("yyMMddHHmmssff");
            destinationPath = destinationPathPrefix + zipFileName + timeStamp;
            string destinationFilePath = destinationPath + ".zip";     

            //ZipFile实例化一个对象zip
            using (ZipFile zip = new ZipFile())
            {
                //压缩率
                zipFile.CompressionLevel = CompressionLevel.Level9;
                zipFile.UseZip64WhenSaving = Zip64Option.Never;
                //加密压缩
                zip.Password = "123456";
                //将要压缩的文件夹添加到zip对象中去(要压缩的文件夹路径和名称)
                zip.AddDirectory(destinationPath);
                //将要压缩的文件添加到zip对象中去,如果文件不存在抛错FileNotFoundExcept
                //zip.AddFile(@"E:\\yangfeizai\\12051214544443\\"+"Jayzai.xml");
                //用zip对象中Save重载方法保存压缩的文件,参数为保存压缩文件的路径
                zip.Save(destinationFilePath);
            }
        }
        #endregion
 
        #region 删除压缩包中的文件
        //从zip文件中删除一个文件,注意无法直接删除一个文件夹
        public void ExeDelete(string FileName)
        {
            using (ZipFile zip = ZipFile.Read(destinationFilePath))
            {
                //zip["test1.xml"] = null;
                //删除zip对象中的一个文件,假设存在文件为test1.xml
                zip.RemoveEntry("test1.xml");
                zip.Save();
            }
        }
        #endregion

        #region 压缩完成后删除临时文件
        var d = new DirectoryInfo(destinationPath);
        d.Delete(true);
        #endregion

  

  

 

 

PS:C#如何以管理员身份运行程序

【 在使用winform程序获取调用cmd命令提示符时,如果是win7以上的操作系统,会需要必须以管理员身份运行才会执行成功,否则无效果或提示错误。】

 在Visual Studio 中--解决方案资源管理器--右键项目名称--属性,找到“安全性”选项,勾选“启用ClickOnce安全设置”,这时,在项目下面会多出一个“app.manifest”的文件,选中它,并找到代码段<requestedExecutionLevel level="asInvoker" uiAccess="false" />,将其改为:<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />,然后再次打开“属性--安全性”界面,将“启用ClickOnce安全设置”前面的勾去掉后再编译运行。

 

posted @ 2017-08-08 11:07  小金乌会发光-Z&M  阅读(1729)  评论(0编辑  收藏  举报