煎饼果子不加葱 2022-08-11 18:45
浏览 14
已结题

如何用C#提取.gz文件中的子文件的修改时间呢?

最近再用C#解压.gz文件,用GzipStream实现了解压的功能,代码如下:

public static void Decompress(FileInfo fileToDecompress)
{
    using (FileStream originalFileStream = fileToDecompress.OpenRead())
    {
        string currentFileName = fileToDecompress.FullName;
        string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);

        using (FileStream decompressedFileStream = File.Create(newFileName))
        {
            using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
            {
                decompressionStream.CopyTo(decompressedFileStream);
            }
        }
    }
}

但是解压出的原始文件的修改时间为当前时间,如何获取到原始的修改时间呢?

比如:

  • 需要解压buoydata.dat.gz,其修改时间为【2016-06-15 03:01】;
  • WinRAR打开.gz文件,发现buoydata.dat的修改时间为【2016-05-26 22:42】;
  • C#GzipStream解压.gz文件,得到buoydata.dat,其修改时间为【2022-08-10 17:31】;

所以,只能在Decompress后,将buoydata.datLastWriteTime属性设置为【2016-05-26 22:42】。

File.SetLastWriteTime(“.../buoydata.dat”, “2016-05-26 22:42”)

问题来了,如何提取到【2016-05-26 22:42】呢?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月19日
    • 创建了问题 8月11日

    悬赏问题

    • ¥15 联想笔记本开机出现系统更新界面
    • ¥15 各位帮帮我 我不想重做系统
    • ¥30 微信小程序蓝牙数据透传
    • ¥15 加氢站氢负荷数据集来源
    • ¥15 umi接入sentry遇到问题
    • ¥15 HBuilderX打包H5网页,扫码模块无法使用
    • ¥15 Javascript跳转页面后,无法执行后面代码,如何解决?
    • ¥15 echarts绘制图表
    • ¥15 请教两个关于高德地图定位不准的技术问题
    • ¥15 根据企业名称 对照两个文件 样本筛选/匹配