C# 解压缩ZIP文件

使用ICSharpCode.SharpZipLib插件进行解压,并转换为二维数组

string postSt = "";

using(MemoryStream fms - new MemoryStream(byte[] file)){

    using(ZipInputStream zis = new ZipInputStream(fms)){

        ZipEntry theEntry; // 相当于将其实例化的操作

         //虽然是循环,但其实是一次性全部读取

        while((theEntry = zis.GetNextEntry()) != null){

            //这里在定义byte数组大小的时候,网上大多数写的是1024,或者是1024*1024.。。。

            //但其实如果不确定文件流的大小是多少,还要定义成死值的话,解析出来的文件特别容易出问题,可能解析出的文件不完整

            byte[] data = new byte[theEntry.Size];

            zis.Read(data, 0, data.Length);

            // 这里进行转码的时候不知道为啥后面会出现很多\0...只能手动将其去掉

            String dateStr = Encoding.UTF8.GetString(data).TrimEnd('\0');

            postSt = postSt + dateSt;

        }

    }

}

postSt = postSt.Replace("\r\n", ",").TrimEnd(',');

string[,] myArr;

string[] strCol = postSt.Split(',');

myArr = new string[strCol.Length,2];

for (int k=0; k<=strCol.Length-1; k++) {

    string[] strRow = strCol[k].Split('|');

    myArr[k,0] = strRow[0];

    myArr[k,1] = strRow[1];

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值