猿问

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

我的列表框中有一个音乐文件列表,当我双击它们时,我正在尝试使用媒体播放器播放它们。但是它一直在提出错误。我假设这是因为“文件”不是字符串,但是如何将其转换为字符串?我尝试使用.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];

}


交互式爱情
浏览 623回答 3
3回答

慕容708150

我没有打开IDE来尝试此操作,但是尝试更改:private void listBox1_SelectedIndexChanged(object sender, EventArgs e){&nbsp; &nbsp; axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex];}至:private void listBox1_SelectedIndexChanged(object sender, EventArgs e){&nbsp; &nbsp; axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex].Fullname;}

慕斯709654

您需要提供AxWindowsMediaPlayer.URL属性的文件路径。您可以使用FileInfo.FullName属性来获取它。所以用&nbsp;axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex].FullName;
随时随地看视频慕课网APP
我要回答