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

VB中使用StreamReader读取含日期CSV文件:正则匹配文件名问题

VB中读取带每日日期的CSV文件解决方案

你之前的错误在于:StreamReader的构造函数只接受具体的文件路径,不会解析正则表达式或通配符,你把正则符号直接写进路径里,程序会把它们当成路径的一部分,自然找不到文件。

下面提供两种可行的方法:

方法一:使用Windows文件通配符(推荐,更简单)

利用Windows文件系统支持的?(匹配单个字符)和*(匹配任意字符)来筛选文件,适合你的固定前缀+8位日期的场景:

Imports System.IO

' 定义目标文件夹路径
Dim folderPath As String = "\\FolderA\FolderB"
' 匹配前缀SEBCTS + 8位任意字符(对应日期)+ .csv的文件
Dim matchingFiles As String() = Directory.GetFiles(folderPath, "SEBCTS????????.csv")

' 检查是否找到匹配文件
If matchingFiles.Length > 0 Then
    ' 使用Using语句自动释放资源,避免内存泄漏
    Using objReader As New StreamReader(matchingFiles(0))
        ' 读取文件内容的逻辑示例
        Dim line As String
        While objReader.Peek() >= 0
            line = objReader.ReadLine()
            ' 在这里处理每行数据,比如拆分CSV字段
        End While
    End Using
Else
    ' 未找到文件时的处理
    MsgBox("未找到符合格式的CSV文件")
End If

如果当天只会生成一个符合前缀的文件,也可以简化为"SEBCTS*.csv"来匹配所有以SEBCTS开头的CSV文件。

方法二:使用正则表达式筛选(适合复杂匹配场景)

如果需要更精确的正则匹配(比如严格校验日期是数字),可以先获取文件夹内所有CSV文件,再用正则筛选文件名:

Imports System.IO
Imports System.Text.RegularExpressions

Dim folderPath As String = "\\FolderA\FolderB"
Dim allCsvFiles As String() = Directory.GetFiles(folderPath, "*.csv")
' 正则规则:以SEBCTS开头,后跟8位数字,结尾是.csv
Dim dateFilePattern As String = "^SEBCTS\d{8}\.csv$"
Dim targetFilePath As String = Nothing

' 遍历所有CSV文件,匹配正则规则
For Each filePath As String In allCsvFiles
    Dim fileName As String = Path.GetFileName(filePath)
    If Regex.IsMatch(fileName, dateFilePattern) Then
        targetFilePath = filePath
        Exit For ' 找到第一个匹配文件后退出循环
    End If
Next

If targetFilePath IsNot Nothing Then
    Using objReader As New StreamReader(targetFilePath)
        ' 读取文件内容逻辑
    End Using
Else
    MsgBox("未找到匹配的CSV文件")
End If

额外注意事项

  • 确保程序有访问\\FolderA\FolderB共享文件夹的权限
  • 如果文件夹内存在多个符合条件的文件,需要添加逻辑选择目标文件(比如按创建时间取最新的)
  • 始终使用Using语句管理StreamReader,确保资源被正确释放

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:40:50