相关文章推荐
卖萌的煎鸡蛋  ·  个人开发者E5账号无法登录,导致网盘资料无法 ...·  2 周前    · 
不拘小节的口罩  ·  地铁13号线A、B线拆分工程近期开工_手机新浪网·  9 月前    · 
酷酷的眼镜  ·  深圳市第二高级中学深汕实验学校面向全国招聘优 ...·  10 月前    · 
奔跑的香烟  ·  石家庄小哥哥入围“最强大脑”30强!网友:我 ...·  1 年前    · 
体贴的小刀  ·  男子公路上骑摩托车练杂技 ...·  1 年前    · 
Code  ›  net/net core 压缩和解压文件类—完美支持Linux开发者社区
linux系统 linux社区 linux压缩文件夹 string类
https://cloud.tencent.com/developer/article/2123156
狂野的毛豆
11 月前
跟着阿笨一起玩NET

net/net core 压缩和解压文件类—完美支持Linux

前往小程序,Get 更优 阅读体验!
立即前往
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
跟着阿笨一起玩NET
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > net/net core 压缩和解压文件类—完美支持Linux

net/net core 压缩和解压文件类—完美支持Linux

作者头像
跟着阿笨一起玩NET
发布 于 2022-09-26 16:03:17
1.3K 0
发布 于 2022-09-26 16:03:17
举报
文章被收录于专栏: 跟着阿笨一起玩NET
代码语言: javascript
复制
/// <summary>
/// 文件压缩类
/// </summary>
public class ZipHelper
    /// <summary>
    /// 单文件压缩成ZIP
    /// </summary>
    /// <param name="fileSource">源文件路径</param>
    /// <param name="fileOut">ZIP文件路径</param>
    /// <param name="fileName">ZIP文件名:相对路径</param>
    /// <returns></returns>
    public static void SimpleFileZip(string fileSource, string fileOut, string fileName)
        using (FileStream zipFileToOpen = new FileStream(fileOut, FileMode.OpenOrCreate))
            using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Update))
                fileName = fileName.Trim(Path.DirectorySeparatorChar);
                ZipFile(fileSource, fileName, archive);
    /// <summary>
    /// 多文件压缩成ZIP
    /// </summary>
    /// <param name="fileSource">源文件路径</param>
    /// <param name="fileOut">ZIP文件路径</param>
    /// <param name="fileName">ZIP文件名</param>
    /// <returns></returns>
    public static void FilesZip(List<string> fileSources, string fileOut)
        using (FileStream zipFileToOpen = new FileStream(fileOut, FileMode.OpenOrCreate))
            using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Update))
                foreach (var file in fileSources)
                    string fileName = file.Replace(AppConsts.ServerUpdateFile + Path.DirectorySeparatorChar, "");
                    ZipFile(file, fileName, archive);
    /// <summary>
    /// 压缩指定文件夹
    /// </summary>
    /// <param name="sourceDirectory"></param>
    /// <param name="fileOut"></param>
    public static void DirectoryZip(string sourceDirectory, string fileOut)
        string[] allFiles = Directory.GetFiles(sourceDirectory, "", SearchOption.AllDirectories);
        using (FileStream zipFileToOpen = new FileStream(fileOut, FileMode.OpenOrCreate))
            using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Update))
                foreach (var file in allFiles)
                    //获取压缩文件相对目录
                    string fileName = file.Replace(sourceDirectory + Path.DirectorySeparatorChar, "");
                    ZipFile(file, fileName, archive);
    /// <summary>
    /// 解压文件到指定目录
    /// </summary>
    /// <param name="upZipDirPath"></param>
    /// <param name="zipPath"></param>
    public static void UnZip(string upZipDirPath, string zipPath)
        if (!Directory.Exists(upZipDirPath))
            Directory.CreateDirectory(upZipDirPath);
        using (FileStream zipFileToOpen = new FileStream(zipPath, FileMode.Open))
            using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Read))
                archive.ExtractToDirectory(upZipDirPath);
    /// <summary>
    /// 生成压缩文件
    /// </summary>
    /// <param name="fileSource">源文件</param>
    /// <param name="fileName">压缩文件相对目录</param>
    /// <param name="archive">压缩文件包</param>
    private static void ZipFile(string fileSource, string fileName, ZipArchive archive)
        ZipArchiveEntry readMeEntry = archive.CreateEntry(fileName);
        readMeEntry.LastWriteTime = File.GetLastWriteTime(fileSource);
        using (Stream stream = readMeEntry.Open())
 
推荐文章
卖萌的煎鸡蛋  ·  个人开发者E5账号无法登录,导致网盘资料无法使用 - Microsoft Q&A
2 周前
不拘小节的口罩  ·  地铁13号线A、B线拆分工程近期开工_手机新浪网
9 月前
酷酷的眼镜  ·  深圳市第二高级中学深汕实验学校面向全国招聘优秀行政教辅人员_腾讯新闻
10 月前
奔跑的香烟  ·  石家庄小哥哥入围“最强大脑”30强!网友:我们连规则都看不懂……_手机新浪网
1 年前
体贴的小刀  ·  男子公路上骑摩托车练杂技 已被交警收缴好几台车|摩托车|俯卧撑|杂技_新浪新闻
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号