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

如何用RegEx提取文件名中nnnxnnn分辨率格式用于文件重命名?

在VB.NET中提取文件名中的分辨率信息

正则匹配规则

要精准匹配文件名里的nnnxnnn格式分辨率,可使用正则表达式 \b\d+[xX]\d+\b,各部分含义:

  • \b:单词边界,确保匹配的是独立的分辨率字段,不会和文件名中其他含数字的内容混淆
  • \d+:匹配1位或多位数字,兼容不同位数的分辨率(比如128x128、1920x1080)
  • [xX]:兼容小写和大写的分隔符,覆盖文件名里可能出现的两种写法

VB.NET提取代码示例

直接上可运行的批量处理代码,提取分辨率并存入变量用于后续重命名:

Imports System.Text.RegularExpressions
Imports System.IO

Module FileRenamerHelper
    Sub ProcessFiles()
        ' 替换为你的目标文件夹路径
        Dim targetDir As String = "C:\Your\Target\Directory"
        
        ' 分辨率匹配正则
        Dim resolutionPattern As String = "\b\d+[xX]\d+\b"

        ' 逐枚枚举文件,适合数十万级文件的内存优化
        For Each filePath As String In Directory.EnumerateFiles(targetDir)
            Dim fileName As String = Path.GetFileName(filePath)
            Dim match As Match = Regex.Match(fileName, resolutionPattern)
            
            ' 提取分辨率到变量,无匹配则为空字符串
            Dim resolution As String = If(match.Success, match.Value, "")

            If Not String.IsNullOrEmpty(resolution) Then
                ' 这里结合元数据生成新文件名,示例格式可自行调整
                Dim newFileName As String = $"New_File_Name_{resolution}{Path.GetExtension(fileName)}"
                Dim newFilePath As String = Path.Combine(targetDir, newFileName)
                
                ' 实际重命名前建议先打印测试,确认无误后再启用File.Move
                ' File.Move(filePath, newFilePath)
                Console.WriteLine($"原文件: {fileName} → 新文件: {newFileName}")
            Else
                ' 无分辨率的文件按原有逻辑处理
                Console.WriteLine($"文件 {fileName} 未检测到分辨率信息")
            End If
        Next
    End Sub
End Module

批量处理注意事项

  • 内存优化:使用Directory.EnumerateFiles而非Directory.GetFiles,前者逐行返回文件路径,不会一次性加载所有文件到内存,适配数十万文件的处理场景
  • 避免覆盖:重命名前检查目标路径是否已存在相同文件名,可通过添加序号(如(1))避免文件被覆盖
  • 异常防护:批量处理时建议添加Try-Catch块,处理文件占用、权限不足等异常,防止程序中途中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:52:42