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

C# ListBox仅显示文件名问题求助:需将路径改为仅文件名

解决ListBox显示文件名而非完整路径的问题

嘿,我瞅了下你的代码,有几个明显的小问题导致ListBox显示System.Str...,没法正确展示文件名。咱们来一步步修正它:

先说说你代码里的问题:

  • 循环对象错了:你写的foreach (var item in folder),这里folder是个字符串路径,循环的是路径里的每一个字符,完全不是你要遍历的文件列表!
  • 错误转换文件数组:Convert.ToString(txtfiles)会把整个字符串数组直接转成System.String[],所以显示的时候就变成截断的System.Str...了。
  • 没合并文件列表:你分别获取了txt和lua文件,但压根没把它们合并到一起处理。

修正后的代码:

private void FlatButton3_Click(object sender, EventArgs e)
{
    ListBox1.Items.Clear();
    string folder = @"C:/Aatrox";
    
    // 获取目标文件夹下的txt和lua文件,合并成一个数组
    string[] txtFiles = Directory.GetFiles(folder, "*.txt");
    string[] luaFiles = Directory.GetFiles(folder, "*.lua");
    string[] allFiles = txtFiles.Concat(luaFiles).ToArray();
    
    // 遍历每个文件路径,提取纯文件名添加到ListBox
    foreach (string filePath in allFiles)
    {
        ListBox1.Items.Add(Path.GetFileName(filePath));
    }
}

关键修改点说明:

  1. 合并文件数组:用Concat把txt和lua文件列表合并成一个数组,这样就能一次性遍历所有你需要的文件了。
  2. 正确遍历文件路径:循环的是allFiles里的每个文件路径(明确声明string filePath),而不是文件夹字符串。
  3. 正确提取文件名:把单个文件路径传给Path.GetFileName(),就能精准提取出Text.txt这种纯文件名了。

额外小提示:

如果你想去掉文件扩展名(比如只显示Text而不是Text.txt),可以把Path.GetFileName(filePath)换成Path.GetFileNameWithoutExtension(filePath)就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:29:43