标签:解压 zip ZIP C# ZipArchive FileStream using new
ZIP流是在NetFramework4.5 引入的目的是为了能够更好的操作ZIP文件,进行压缩解压等操作。与ZIP流相关的几个类是:
- ZipArchive 代表一个ZIP的压缩包文件
- ZipArchiveEntry 代表ZIP压缩包中的一个文件
- ZipFile 提供了一系列的静态方法来帮助用户更方便地操作ZIP文件,类似于File类的作用。
注意:在使用之前请先添加程序集引用System.IO.Compression
与System.IO.Compression.FileStream
/// <summary>
/// 测试
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnZIP_Click(object sender, EventArgs e)
{
ZIPYS();
ZIPJY();
}
/// <summary>
/// 创建压缩zip文档
/// </summary>
private void ZIPYS()
{
using (FileStream fs = new FileStream("Zip123.zip", FileMode.Create))
{
using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Create))
{
//创建文档文件
ZipArchiveEntry entry = zipArchive.CreateEntry("HelloWorld.txt");
//文档文件写入内容
using (StreamWriter writer = new StreamWriter(entry.Open(), Encoding.Default))
{
writer.Write("I am 鲁迅认识的那只猹! Hello World");
}
}
}
}
/// <summary>
/// 解压zip文档
/// </summary>
private void ZIPJY()
{
using (FileStream fs = new FileStream("log.zip", FileMode.Open))
{
using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Update))
{
//创建存放解压文件目录
Directory.CreateDirectory("log123");
//解压所有文档文件
foreach (var it in zipArchive.Entries)
{
it.ExtractToFile(@"log123\" + it.Name);
}
}
}
}
/// <summary>
/// 向zip文档中添加文档
/// </summary>
private void ZIPYStj()
{
using (FileStream fs = new FileStream("Zip123.zip", FileMode.Open))
{
using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Update))
{
ZipArchiveEntry entry = zipArchive.CreateEntry("AppendFile.txt");
using (StreamWriter wr = new StreamWriter(entry.Open(), Encoding.Default))
{
wr.Write("追加内容123!");
}
}
}
}
ZipFile
方法 | 解释 |
---|---|
FileZip.CreateFromDirectory | 从一个目录创建ZIP压缩文件 |
FileZip.ExtractToDirectory | 将ZIP压缩文件解压到目录中 |
FileZip.Open | 打开一个ZIP压缩文件 |
FileZip.OpenRead | 打开一个读取模式的ZIP压缩文件 |
ZipFileExtensions
ZipFileExtensions 为ZipArchive 和 ZipArchiveEntry 提供了一些更简便的方法,具体可以查看官方文档
原文链接:https://www.cnblogs.com/slyfox/p/11231375.html
标签:解压,zip,ZIP,C#,ZipArchive,FileStream,using,new 来源: https://www.cnblogs.com/1175429393wljblog/p/11572726.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。