C#读取文本文件到数组并添加至ListBox问题求助
嘿,我来帮你搞定这个媒体播放器的小问题!看起来你已经迈出了第一步——把txt文件内容读到数组里,接下来只要把这些曲目名称加到Lst_genre这个ListBox里就好啦。我给你补全并优化代码,顺便提几个要注意的细节:
完整实现代码
private void Form1_Load(object sender, EventArgs e) { try { // 替换成你的实际文件路径,记得用@符号避免转义,比如@"C:\MyMusic\tracks.txt" string filePath = @"filepathgoeshere"; // 读取文件所有行到字符串数组 string[] trackNames = File.ReadLines(filePath).ToArray(); // 可选:先清空ListBox,防止重复添加曲目 Lst_genre.Items.Clear(); // 遍历数组,把每个曲目名称加到ListBox里(顺便过滤空行) foreach (string track in trackNames) { if (!string.IsNullOrWhiteSpace(track)) { Lst_genre.Items.Add(track); } } } catch (FileNotFoundException) { MessageBox.Show("找不到指定的文件哦,请检查路径是否正确!"); } catch (Exception ex) { MessageBox.Show($"读取文件时出错啦:{ex.Message}"); } }
几个实用的小提示
- 文件路径别踩坑:硬写绝对路径容易出问题,如果你把txt文件放在程序的运行目录里,可以用下面的方式获取路径,更灵活:
这样不管程序放到哪里,都能找到文件。string filePath = Path.Combine(Application.StartupPath, "你的文件名.txt"); - 异常处理很重要:加个try-catch块,能避免因为文件找不到、没权限之类的问题导致程序直接崩溃,还能给你友好的提示。
- 高效添加小技巧:如果不想用foreach循环,也可以一次性把数组内容加到ListBox里,代码更简洁:
// 先过滤空行,再批量添加 var validTracks = trackNames.Where(track => !string.IsNullOrWhiteSpace(track)).ToArray(); Lst_genre.Items.AddRange(validTracks); - 避免重复条目:如果Form1_Load可能被多次触发,记得先调用
Lst_genre.Items.Clear()清空一下,不然曲目会重复出现哦。
内容的提问来源于stack exchange,提问作者user9108424
相关产品推荐
相关产品推荐

