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

VB.NET代码求助:如何为ListBox添加指定扩展名过滤功能

解决方案:筛选特定视频文件类型并添加到ListBox

嘿,看起来你需要把原来遍历文件夹的逻辑改成只抓取.avi、.mp4、.wmv这三种视频文件对吧?我帮你调整了代码,不仅实现了类型筛选,还加了一些健壮性处理,一起来看看:

修改后的完整代码

Private Sub ButtonOk_Click(sender As Object, e As EventArgs) Handles ButtonOk.Click
    ' 定义允许的文件扩展名(用HashSet提升查找效率,支持大小写不敏感匹配)
    Dim allowedExtensions As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase) From {".avi", ".mp4", ".wmv"}
    
    Try
        ' 验证输入路径并创建DirectoryInfo对象
        Dim baseFolder As New IO.DirectoryInfo(TextBoxFolderLocation.Text)
        If Not baseFolder.Exists Then
            MessageBox.Show("指定的文件夹不存在,请检查路径!")
            Return
        End If
        
        ' 清空ListBox避免重复添加内容
        ListBox1.Items.Clear()
        
        ' 添加基文件夹名称到ListBox(按你的需求保留这部分)
        ListBox1.Items.Add($"基文件夹:{baseFolder.Name}")
        ListBox1.Items.Add("---") ' 加个分隔线区分基文件夹和文件列表
        
        ' 遍历文件夹中的所有文件,筛选符合条件的视频文件
        For Each file As IO.FileInfo In baseFolder.GetFiles().Where(Function(f) allowedExtensions.Contains(f.Extension))
            ' 可按需调整显示内容,比如只显示文件名,或者带上完整路径
            ListBox1.Items.Add($"文件:{file.Name} | 路径:{file.FullName}")
        Next
        
        ' 当没有找到符合条件的文件时给出提示
        If ListBox1.Items.Count <= 2 Then ' 减去基文件夹和分隔线的条目数
            MessageBox.Show("未找到符合条件的视频文件!")
        End If
        
    Catch ex As Exception
        MessageBox.Show($"操作出错:{ex.Message}")
    End Try
End Sub

关键修改点说明

  • 扩展名筛选逻辑:用HashSet(Of String)存储允许的扩展名,同时指定StringComparer.OrdinalIgnoreCase,这样不管是.MP4还是.mp4都能被识别到。
  • 替换遍历对象:把原来的GetDirectories()(获取子文件夹)换成GetFiles()(获取文件),再通过LINQ的Where方法过滤出符合要求的文件。
  • 健壮性增强:添加了文件夹存在性检查和异常捕获,避免因为无效路径、权限问题导致程序崩溃。
  • 用户体验优化:清空ListBox避免重复内容,添加基文件夹标识和分隔线,无匹配文件时给出明确提示。

如果需要递归遍历所有子文件夹里的目标文件,只需要把baseFolder.GetFiles()改成baseFolder.GetFiles("*.*", IO.SearchOption.AllDirectories)就可以了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:30:52