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

VB.NET实现批量重命名文件并移除动态日期

VB.NET批量移除文件名中的动态日期实现方案

完全可以实现这个需求,针对你提到的8位数字日期格式(如20230624),用正则表达式匹配替换是最稳妥的方式,下面给你一套适合新手的实现代码:

完整代码示例

Imports System.IO
Imports System.Text.RegularExpressions

Module FileRenamer
    Sub Main()
        ' 让用户选择要处理的文件夹
        Dim folderPath As String = ""
        Using fbd As New FolderBrowserDialog()
            If fbd.ShowDialog() = DialogResult.OK Then
                folderPath = fbd.SelectedPath
            Else
                Console.WriteLine("未选择文件夹,程序退出")
                Return
            End If
        End Using

        ' 遍历文件夹下的所有.csv文件(可修改扩展名匹配规则)
        For Each filePath As String In Directory.GetFiles(folderPath, "*.csv")
            Try
                Dim fileName As String = Path.GetFileName(filePath)
                Dim extension As String = Path.GetExtension(fileName)
                Dim fileNameWithoutExt As String = Path.GetFileNameWithoutExtension(fileName)

                ' 正则匹配下划线+8位数字的日期部分
                Dim pattern As String = "_\d{8}"
                Dim newFileNameWithoutExt As String = Regex.Replace(fileNameWithoutExt, pattern, "")
                Dim newFileName As String = newFileNameWithoutExt & extension

                ' 生成新路径,处理重名情况
                Dim newFilePath As String = Path.Combine(folderPath, newFileName)
                Dim counter As Integer = 1
                While File.Exists(newFilePath)
                    newFileName = $"{newFileNameWithoutExt}_{counter}{extension}"
                    newFilePath = Path.Combine(folderPath, newFileName)
                    counter += 1
                End While

                ' 执行重命名
                File.Move(filePath, newFilePath)
                Console.WriteLine($"已重命名:{fileName} -> {newFileName}")
            Catch ex As Exception
                Console.WriteLine($"处理文件出错:{filePath},错误信息:{ex.Message}")
            End Try
        Next

        Console.WriteLine("批量重命名完成,按任意键退出...")
        Console.ReadKey()
    End Sub
End Module

关键说明

  • 正则表达式:_\d{8} 精准匹配下划线后接8位数字的日期段,正好对应你说的动态日期格式;如果日期格式有变化(比如带分隔符),只需调整这个正则即可。
  • 异常处理:通过Try-Catch捕获单个文件的处理错误,避免程序因某一个文件异常而整体崩溃。
  • 重名防护:如果移除日期后出现重名文件,会自动在文件名后添加序号(如TEST_FILE_1.csv),防止文件被覆盖。
  • 扩展名适配:代码默认只处理.csv文件,若要适配其他格式,修改Directory.GetFiles的第二个参数即可(比如改成"*.txt"处理文本文件)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:47:46