You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在含多级子目录的Data.zip中找出最新时间的文件

修改C#代码以输出Zip中最后修改时间最晚的目标文件

需求说明

下游系统每日会在Data文件夹下创建数据文件夹,文件逐步生成在子文件夹TS中,最终打包为Data.zip上传至Azure Blob。现有代码可打印Zip内名称以XXX_TS_开头的所有文件名,需修改为仅输出其中LastWriteTime最晚的文件。

修改后的代码

var blobClient = new BlobClient("conn-string", "upload", "Data.zip");
await DownloadFromStream(blobClient);

public static async Task DownloadFromStream(BlobClient blobClient)
{
    var stream = await blobClient.OpenReadAsync(new BlobOpenReadOptions(false));
    using ZipArchive archive = new ZipArchive(stream);
    
    // 过滤目标文件并获取最晚修改的条目
    var latestEntry = archive.Entries
        .Where(entry => entry.Name.StartsWith("XXX_TS_"))
        .OrderByDescending(entry => entry.LastWriteTime)
        .FirstOrDefault();

    if (latestEntry != null)
    {
        Console.WriteLine($"最晚修改的文件:{latestEntry.Name}");
        Console.WriteLine($"最后修改时间:{latestEntry.LastWriteTime}");
    }
    else
    {
        Console.WriteLine("未找到名称以XXX_TS_开头的文件");
    }
}

改动说明

  • 移除原代码中计数和遍历打印的冗余逻辑
  • 用Where筛选出所有名称符合规则的Zip条目
  • 通过OrderByDescending按最后修改时间降序排序,再用FirstOrDefault直接获取最晚修改的文件
  • 增加空值判断,避免无符合条件文件时出现异常

内容的提问来源于stack exchange,提问作者user584018

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:10:23