最近有一项需求,将电测试点数后台批量写入到工程系统流程指示中,而电测试文件存在压缩包中,压缩包存在公共网络盘
示例图:
一.采用原始方法(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; }