PCB 无需解压,直接读取Zip压缩包指定文件 实现方法
最近有一项需求,将电测试点数后台批量写入到工程系统流程指示中,而电测试文件存在压缩包中,压缩包存在公共网络盘
示例图:
一.采用原始方法(4步完成):
第1步:.网络盘ZIP拷到本地,
第2步:解压ZIP到文件夹
第3步:读取文件夹内容并处理
第4步:删除文件夹与ZIP
二.采用新的方法:(1步完成)
第1步:.读取ZIP内容并处理
小结:没有对比就没有伤害,简直完美秒杀以前的作法,应用用于当我们只需读取一个ZIP压缩包中指定文件时,可以采用此方法实现。
三.如何实现呢?
引用2个文件,需.net4.5才支持(在巨人的肩膀太给力了,感谢微软)
System.IO.Compression.FileSystem.dll
System.IO.Compression.dll
代码示例:
private string readZip() { string line = ""; string file = @"F:\4V2TT0B1A0.zip"; using (ZipArchive archive = ZipFile.OpenRead(file)) { foreach (ZipArchiveEntry entry in archive.Entries) { if (entry.FullName.EndsWith("profile.cmb")) { Stream st = entry.Open(); byte[] byData = new byte[entry.Length]; st.Read(byData, 0, byData.Length); line = System.Text.Encoding.Default.GetString(byData); //纯英文读取 //line = System.Text.Encoding.UTF8.GetString(byData); //含中文读取 st.Close(); } } } return line; }
作者:pcbren 微信号:yadnfku QQ号: 254566449
博客地址:https://www.cnblogs.com/pcbren/
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
如果大家感觉我的博文对大家有帮助,请推荐支持一把。