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;
        }

 

posted @ 2018-07-24 19:56  pcbren  阅读(819)  评论(0编辑  收藏  举报