登录
  • 欢迎访问 Sharezer Blog

Unity GZIP解压压缩 ICSharpCode.SharpZipLib.dll

C# sharezer 4198次浏览 已收录 0个评论
// <summary>
/// 使用GZIP压缩文件的方法
/// </summary>
/// <param name="sourcefilename">源文件路径</param>
/// <param name="zipfilename">压缩文件路径</param>
/// <returns>返回bool操作结果,成功true,失败 flase</returns>
public static bool GZipFile(string sourcefilename, string zipfilename)
{
    bool blResult;//表示压缩是否成功的返回结果
    //为源文件创建读取文件的流实例
    FileStream srcFile = File.OpenRead(sourcefilename);
    //为压缩文件创建写入文件的流实例,
    GZipOutputStream zipFile = new GZipOutputStream(File.Open(zipfilename, FileMode.Create));
    try
    {
        byte[] FileData = new byte[srcFile.Length];//创建缓冲数据
        srcFile.Read(FileData, 0, (int)srcFile.Length);//读取源文件
        zipFile.Write(FileData, 0, FileData.Length);//写入压缩文件
        blResult = true;
    }
    catch (Exception ee)
    {
        Console.WriteLine(ee.Message);
        blResult = false;
    }
    srcFile.Close();//关闭源文件
    zipFile.Close();//关闭压缩文件
    return blResult;
}
/// <summary>
/// 使用GZIP解压文件的方法
/// </summary>
/// <param name="zipfilename">源文件路径</param>
/// <param name="unzipfilename">解压缩文件路径</param>
/// <returns>返回bool操作结果,成功true,失败 flase</returns>
public static bool UnGzipFile(string zipfilename, string unzipfilename)
{
    bool blResult;//表示解压是否成功的返回结果
    //创建压缩文件的输入流实例
    GZipInputStream zipFile = new GZipInputStream(File.OpenRead(zipfilename));
    //创建目标文件的流
    FileStream destFile = File.Open(unzipfilename, FileMode.Create);
    try
    {
        int buffersize = 2048;//缓冲区的尺寸,一般是2048的倍数
        byte[] FileData = new byte[buffersize];//创建缓冲数据
        while (buffersize > 0)//一直读取到文件末尾
        {
            buffersize = zipFile.Read(FileData, 0, buffersize);//读取压缩文件数据
            destFile.Write(FileData, 0, buffersize);//写入目标文件
        }
        blResult = true;
    }
    catch (Exception ee)
    {
        Console.WriteLine(ee.Message);
        blResult = false;
    }
    destFile.Close();//关闭目标文件
    zipFile.Close();//关闭压缩文件
    return blResult;
}

Sharezer , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Unity GZIP解压压缩 ICSharpCode.SharpZipLib.dll
喜欢 (3)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址