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

VB.Net如何调整代码按文件名自然日期顺序排序目录Excel文件

调整方案

核心修改逻辑是将排序依据从「文件最后写入时间」替换为「文件名解析得到的真实日期」,同时处理英文月份缩写的跨区域解析兼容问题,避免非英文系统下解析失败。

关键调整点

  • 移除原有基于LastWriteTime的排序、Reverse倒序逻辑
  • 提取每个Excel文件的无后缀文件名,严格按照MMM yyyy格式解析为标准DateTime类型作为排序键
  • 指定英文(美国)文化区域做日期解析,适配Jan、Feb这类英文月份缩写的识别,不受系统默认区域设置影响

修改后完整代码

首先需要提前导入所需命名空间:

Imports System.IO
Imports System.Globalization

核心文件遍历逻辑:

' 初始化英文文化配置,用于解析3位英文月份缩写
Dim enUsCulture As New CultureInfo("en-US")

' 按文件名对应的自然日期正序排列(最早月份 -> 最新月份)
Dim targetFiles = New DirectoryInfo(MY_PATH).GetFiles("*.xlsx", SearchOption.TopDirectoryOnly)
    .OrderBy(Function(fileInfo) DateTime.ParseExact(
        Path.GetFileNameWithoutExtension(fileInfo.Name),
        "MMM yyyy",
        enUsCulture,
        DateTimeStyles.None
    ))

For Each f As FileInfo In targetFiles
    ' 原有业务处理代码
Next

可选配置

  • 如果需要按日期倒序(最新月份 -> 最早月份),直接将代码中的OrderBy替换为OrderByDescending即可,比排序后调用Reverse()执行效率更高
  • 若目录中可能存在不符合[MMM yyyy].xlsx命名规则的文件,可以把ParseExact换成TryParseExact做容错过滤,避免解析报错中断流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:39:19