为了账号安全,请及时绑定邮箱和手机立即绑定

C# 为字符串数组的每个项目设置特定的开始和结束位置

C# 为字符串数组的每个项目设置特定的开始和结束位置

C#
白猪掌柜的 2023-04-29 16:52:37
我试图读取特定文件夹中所有文件的名称,然后将每个文件名作为一个项目添加到列表框中。问题是这样做时我的列表框显示了完整的文件路径。我尝试了几种不同的方法,感觉好像从每个项目中删除“C:\Client\TestFolder\”和“.txt”应该非常容易。但是似乎没有任何效果:(非常感谢任何帮助!        string[] filePaths = Directory.GetFiles(@"C:\Client\TestFolder\", "*.txt", SearchOption.TopDirectoryOnly);        listBox1.Items.AddRange(filePaths);        string[] titleArray = new string[listBox1.Items.Count];        for (int i = 0; i < listBox1.Items.Count; i++)        {            titleArray[i] = listBox1.Items[i].ToString();        }        Array.Sort(titleArray);        listBox1.Items.Clear();        for (int i = 0; i < titleArray.Length; i++)        {            listBox1.Items.Add(titleArray[i].ToString());        }例如,如果文件路径 C:\Client\TestFolder\ 包含 3 个 .txt 文件:测试1.txt测试2.txt测试3.txt我的列表框将显示:C:\Client\TestFolder\test1.txtC:\Client\TestFolder\test2.txtC:\Client\TestFolder\test3.txt期望的结果:测试 1测试2测试3
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

您可以使用Path.GetFileNameWithoutExtension。

使用您的代码的示例:

string[] filePaths = Directory.GetFiles(@"C:\Client\TestFolder\", "*.txt", SearchOption.TopDirectoryOnly);

listBox1.Items.AddRange(filePaths);

string[] titleArray = new string[listBox1.Items.Count];


for (int i = 0; i < listBox1.Items.Count; i++)

{

    titleArray[i] = listBox1.Items[i].ToString();

}


Array.Sort(titleArray);

listBox1.Items.Clear();


for (int i = 0; i < titleArray.Length; i++)

{

    listBox1.Items.Add(Path.GetFileNameWithoutExtension(titleArray[i]));

}


查看完整回答
反对 回复 2023-04-29
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信