Visual Basic中如何在ListBox中仅显示文件名不显示完整路径
解决方案
IO.Directory.GetFiles 方法默认返回的是包含完整路径的文件字符串,你可以借助 IO.Path.GetFileName 方法提取纯文件名,常用实现方式有两种:
- 方式一:循环遍历逐个处理
Dim files() As String = IO.Directory.GetFiles(CurDir, "*.txt") For Each filePath As String In files ' 提取纯文件名后添加到ListBox ListBox1.Items.Add(IO.Path.GetFileName(filePath)) Next
- 方式二:LINQ批量处理后一次性添加(代码更简洁)
需要先在代码文件头部引入LINQ命名空间:Imports System.Linq
后续逻辑代码:
Dim files() As String = IO.Directory.GetFiles(CurDir, "*.txt") Dim pureFileNames = files.Select(Function(path) IO.Path.GetFileName(path)).ToArray() ListBox1.Items.AddRange(pureFileNames)
如果后续你还需要用到选中文件的完整路径做读取、修改等操作,建议不要直接丢弃路径信息,可以用自定义类绑定ListBox,同时兼顾展示效果和路径存储:
' 自定义文件项类 Public Class FileItem Public Property FileName As String Public Property FullPath As String ' 重写ToString方法,ListBox默认展示该方法返回值 Public Overrides Function ToString() As String Return FileName End Function End Class ' 绑定数据到ListBox的逻辑 Dim files() As String = IO.Directory.GetFiles(CurDir, "*.txt") Dim itemList As New List(Of FileItem) For Each fullPath In files itemList.Add(New FileItem With { .FileName = IO.Path.GetFileName(fullPath), .FullPath = fullPath }) Next ListBox1.Items.AddRange(itemList.ToArray()) ' 后续获取选中文件完整路径的示例 ' Dim selectedPath = DirectCast(ListBox1.SelectedItem, FileItem).FullPath
内容的提问来源于stack exchange,提问作者beamed
相关产品推荐
相关产品推荐

