我有一个与GetItemText有关的列表框问题,将其替换并将其添加到列表中

问题描述

首先对我的英语不好,但我是意大利语感到抱歉。

第二,我只从4个月开始编程,我的表现非常糟糕...

因此,我在使用Windows Forms制作音乐播放器时,您可以打开一个包含音乐文件文件夹并听音乐,因此当打开该文件夹时,它会将所有文件放入列表框中,但是它们就像“ C:\ Desktop \ Folder \ AllStar.mp3”,我只希望它像“ AllStar.mp3”,所以我将此代码设为,但是当我运行它时,它用意大利语创建了一个东西,它的(Raccolta)[与google译者是(集合)或(收集)],它没有给我提供短名称的替换文件,我该如何解决

这是代码

string text = listBox1.GetItemText(listBox1.Items);
text = text.Replace(@"C:\Users\****\****\Desktop\-PC-\Musica","");
listBox1.Items.Add(text);

会很有帮助!

解决方法

您可以使用Path.GetFileName仅检索不带扩展名的文件名。

完整示例

using System;
using System.Data;
using System.IO;
using System.Linq;
using System.Windows.Forms;

namespace ListBoxExample
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void BrowseButton_Click(object sender,EventArgs e)
        {
            using (var browser = new FolderBrowserDialog())
            {
                DialogResult result = browser.ShowDialog();

                if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(browser.SelectedPath))
                {
                    var files = Directory
                        .GetFiles(browser.SelectedPath)
                        .Where(path => Path.GetExtension(path).ToUpper().EndsWith("MP3"))
                        .Select(path => Path.GetFileName(path));

                    foreach (var file in files)
                    {
                        MusicListBox.Items.Add(file);
                    }
                }
            }
        }
    }
}