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
【 在使用winform程序获取调用cmd命令提示符时,如果是win7以上的操作系统,会需要必须以管理员身份运行才会执行成功,否则无效果或提示错误。】
在Visual Studio 中--解决方案资源管理器--右键项目名称--属性,找到“安全性”选项,勾选“启用ClickOnce安全设置”,这时,在项目下面会多出一个“app.manifest”的文件,选中它,并找到代码段<requestedExecutionLevel level="asInvoker" uiAccess="false" />,将其改为:<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />,然后再次打开“属性--安全性”界面,将“启用ClickOnce安全设置”前面的勾去掉后再编译运行。
朱颜辞镜花辞树,敏捷开发靠得住!