我試圖讀取特定文件夾中所有文件的名稱,然后將每個文件名作為一個項目添加到列表框中。問題是這樣做時我的列表框顯示了完整的文件路徑。我嘗試了幾種不同的方法,感覺好像從每個項目中刪除“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]));
}
- 1 回答
- 0 關注
- 166 瀏覽
添加回答
舉報
0/150
提交
取消