繁体   English   中英

C#无法将类型'System.IO.FileInfo'隐式转换为字符串

[英]C# Cannot Implicitly Convert type 'System.IO.FileInfo' to string

我的列表框中有一个音乐文件列表,当我双击它们时,我正在尝试使用媒体播放器播放它们。 但是它一直在提出错误。 我假设这是因为“文件”不是字符串,但是如何将其转换为字符串? 我尝试使用.ToString,但是它不起作用。 我对此很陌生。 任何帮助表示赞赏。

错误出现在axWindowsMediaPlayer.URL = files [listBox1.SelectedIndex];中。

这是我的代码:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    string[] extensions = new[] { ".mp3", ".wma", ".wav", ".MP3", ".WMA" };

    FileInfo[] files;

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex];
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        DirectoryInfo dinfo = new DirectoryInfo(@"C:\Tracks");
        files = dinfo.EnumerateFiles().Where(f => extensions.Contains(f.Extension.ToLower())).ToArray();

        for (int i = 0; i < files.Length; i++)
        {
            listBox1.Items.Add(files[i]);
        }


    }

这是显示错误的代码:

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex];
}

我没有打开IDE尝试此操作,但是尝试更改:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex];
}

至:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex].Fullname;
}

FileInfo.FullName(如果需要文件的完整路径)。

FileInfo.Name,如果您只想要名称。

在您的代码中:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex].FullName;
}

您需要提供AxWindowsMediaPlayer.URL属性的文件路径。您可以使用FileInfo.FullName属性来获取它。

因此,请使用axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex].FullName;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM