.NET Framework 4.5 ZipArchive类压缩解压
一、 添加引用
二、引入命名空间
using System.IO;
using System.IO.Compression;
三、实现代码
#region .NET Framework 4.5 ZipArchive类 压缩、解压
/// <summary>
/// ZipArchive压缩
/// </summary>
/// <param name="str_ZipFilePath">压缩文件存放的路径(如:/UploadFiles/quber.zip)</param>
/// <param name="str_OldFilePath">压缩文件的上级文件夹名称路径(如:/UploadFiles/)</param>
/// <param name="bl_IsDeleteZip">是否首先删除已经存在的zip压缩包</param>
public static bool ZAZIP(string str_ZipFilePath, string str_OldFilePath, bool bl_IsDeleteZip)
{
bool bl_Result = false;
try
{
//删除已经存在的压缩包
DeleteFile(str_ZipFilePath);
//若压缩包的文件夹路径不存在,则创建
string str_CreateZipFilePath = str_ZipFilePath.Substring(0, str_ZipFilePath.Length - (str_ZipFilePath.Length - str_ZipFilePath.LastIndexOf("/")));
CreateFilePath(str_CreateZipFilePath);
string[] str_AllFileName = GetAllFileName(str_OldFilePath);
using (var zip = ZipFile.Open(System.Web.HttpContext.Current.Server.MapPath(str_ZipFilePath), ZipArchiveMode.Create))
{
if (str_AllFileName.Length > 0)
{
for (int i = 0; i < str_AllFileName.Length; i++)
{
zip.CreateEntryFromFile(System.Web.HttpContext.Current.Server.MapPath(str_OldFilePath) + str_AllFileName[i], str_AllFileName[i]);
bl_Result = true;
}
}
}
return bl_Result;
}
catch (Exception)
{
return bl_Result;
}
}
/// <summary>
/// ZipArchive解压
/// </summary>
/// <param name="str_UNZipFilePath">解压的文件路径(如:/UploadFiles/quber.zip)</param>
/// <param name="str_UNZipFileToPath">解压到的文件路径(如:/UploadFiles/UNZipFile/)</param>
/// <param name="IsDeleteFile">是否删除解压到的文件夹中已经存在的文件</param>
/// <returns></returns>
public static bool UNZAZIP(string str_UNZipFilePath, string str_UNZipFileToPath, bool IsDeleteFile)
{
bool bl_Result = false;
try
{
if (IsDeleteFile)
{
// 列出压缩压缩文件
using (FileStream zipFileToOpen = new FileStream(System.Web.HttpContext.Current.Server.MapPath(str_UNZipFilePath), FileMode.Open))
using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Read))
{
foreach (var zipArchiveEntry in archive.Entries)
{
DeleteFile(str_UNZipFileToPath + zipArchiveEntry.FullName);
}
}
}
ZipFile.ExtractToDirectory(System.Web.HttpContext.Current.Server.MapPath(str_UNZipFilePath), System.Web.HttpContext.Current.Server.MapPath(str_UNZipFileToPath));
bl_Result = true;
return bl_Result;
}
catch (Exception)
{
return bl_Result;
}
}
/// <summary>
/// 获取文件夹下的所有文件名称
/// </summary>
/// <param name="str_FilePath">文件夹路径名称(如:/UploadFiles/)</param>
/// <returns></returns>
public static string[] GetAllFileName(string str_FilePath)
{
string[] str_AllFileName = { };
try
{
DirectoryInfo di = new DirectoryInfo(System.Web.HttpContext.Current.Server.MapPath(str_FilePath));
FileSystemInfo[] dis = di.GetFileSystemInfos();
if (dis.Length > 0)
{
str_AllFileName = new string[dis.Length];
int i_Count = 0;
foreach (FileSystemInfo fitemp in dis)
{
str_AllFileName[i_Count] = fitemp.Name;
i_Count++;
}
}
return str_AllFileName;
}
catch (Exception)
{
return str_AllFileName;
}
}
/// <summary>
/// 创建文件夹
/// </summary>
/// <param name="str_FolderPath">/UploadFiles/</param>
public static void CreateFilePath(string str_FolderPath)
{
string str_Path = System.Web.HttpContext.Current.Server.MapPath(str_FolderPath);
if (!System.IO.Directory.Exists(str_Path))
System.IO.Directory.CreateDirectory(str_Path);
}
/// <summary>
/// 删除文件
/// </summary>
/// <param name="str_DataFilePath">/UploadFiles/name.txt</param>
public static void DeleteFile(string str_DataFilePath)
{
if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath(str_DataFilePath)))
System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath(str_DataFilePath));
}
#endregion
四、 调用示例
bool bl_Result = ZAZIP("/UploadFiles/quber.zip", "/UploadFiles/", true);
bool bl_Result = UNZAZIP("/UploadFiles/quber.zip", "/UploadFiles/UNZipFile/", true);
.NET Framework 4.5 ZipArchive类压缩解压相关推荐
- Linux自学笔记 | 10 常用命令 - 压缩解压类
Linux自学笔记 | 10 常用命令 - 压缩解压类 Linux自学笔记 | 01 文件系统和目录结构 Linux自学笔记 | 02 VIM编辑器的安装与使用 Linux自学笔记 | 03 Linu ...
- 【文件压缩解压工具类-含密码】
文件压缩解压工具类-含密码 一.zip4j简介 二.zip4j工具类使用步骤 1.添加maven依赖 2.工具类代码 3.调用测试 三.结语 一.zip4j简介 zip4j功能比较强大,支持加密.解密 ...
- .Net Core 使用ZipFile类--文件的压缩解压
NuGet引用官网自带的System.IO.Compression.ZipFile var filename = "测试压缩解压文件"; var path = Directory. ...
- 使用C#压缩解压文件
为了便于文件在网络中的传输和保存,通常将文件进行压缩操作,常用的压缩格式有rar.zip和7z,本文将介绍在C#中如何对这几种类型的文件进行压缩和解压,并提供一些在C#中解压缩文件的开源库. 在C#. ...
- python压缩文件tar_python 实现tar文件压缩解压的实例详解
python 实现tar文件压缩解压的实例详解 python 实现tar文件压缩解压的实例详解 压缩文件: import tarfile import os def tar(fname): t = t ...
- iOS zlib 压缩解压
最近需要压缩解压问题,查找了一些资料 ZipArchive库,实现对文件的压缩解压缩,网上有资源,可以下载研究一下,对于一些冗余代码可以修改一下.资源链接http://download.csdn.ne ...
- php视频压缩技术,PHP 实现文件压缩解压操作的方法
在php中,有时我们需要使用到压缩文件操作,压缩文件可以节省磁盘空间:且压缩文件更小,便于网络传输,效率高,下面我们就来了解php的压缩解压相关操作 在PHP中有一个ZipArchive类,专门用于文 ...
- Asp.net 2.0 C#实现压缩/解压功能
Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载) (一). 实现功能 对文件及目录的压缩及解压功能 (二). 运行图片示例 (三).代码 1. 压缩类 1/**//// <s ...
- java 7zip解压_Apache Commons Compress介绍-JAVA压缩解压7z文件
7zip(下面简称7z)是由Igor Pavlov所开发的一种压缩格式,主要使用的压缩算法是LZMA/LZMA2.7z是一种压缩比非常高的格式,这与其压缩算法LZMA有直接关系,所以很多大文件都是用7 ...
- 用.NET 2.0压缩解压功能处理大型数据
摘要 如果你的应用程序从未使用过压缩,那么你很幸运.而对于另一部分使用压缩的开发人员来说,好消息是,.NET 2.0如今提供了两个类来处理压缩和解压问题.本文正是想讨论何时以及如何使用这些有用的工具. ...
最新文章
- 王爽实验9.自己解读,代码注释很多!
- Hadoop学习之以伪分布模式部署Hadoop及常见问题
- Ubuntu系统安装(win7双系统)
- CCF-CSP认证201312-1(出现次数最多的数)
- 美团点评APP在移动网络性能优化的实践,吊打面试官系列!
- 开源java项目_请问有哪些开源java项目值得学习的?学习完了容易找工作的?
- idea引入本地jar包及打包
- 【摘抄】SLAM中的位姿
- 游戏开发最佳10个工具与技术方案
- 基于51单片机的数字电压表
- Deepin 系统下安装VMware并激活.
- 小狼毫五笔输入法设置
- JAVA后端应该学什么技术?
- Ubuntu20.04安装五笔、拼音混合输入法
- 计算机找网络共享盘快捷键,电脑共享快捷键不见了怎么办
- centos7 mysql启动后端口,centos安装mysql后3306端口不通_网站服务器运行维护
- 3.17 让你的小红书笔记排名更靠前的六个方法【玩赚小红书】
- 医疗项目(HIS)业务简单介绍
- CSS3 制作正方体
- 冯诺依曼 计算机名言,约翰.冯.诺依曼名言