C# 无法将类型 'System.IO.FileInfo' 隐式转换为字符串
C# Cannot Implicitly Convert type 'System.IO.FileInfo' to string
我的列表框中有一个音乐文件列表,我试图在双击它们时使用媒体播放器播放它们。但它不断出现错误。我假设这是因为 'files' 不是字符串,但如何将其转换为字符串?我试过使用 .ToString 但它不起作用。我对此很陌生。
感谢任何帮助。
错误在 axWindowsMediaPlayer.URL = 文件[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;
}
您需要提供 AxWindowsMediaPlayer.URL 属性的文件路径
您可以使用 FileInfo.FullName 属性获取它。
所以使用axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex].FullName;
FileInfo.FullName 如果你想要文件的完整路径。
FileInfo.Name 如果你只想要名字。
在您的代码中:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex].FullName;
}
我的列表框中有一个音乐文件列表,我试图在双击它们时使用媒体播放器播放它们。但它不断出现错误。我假设这是因为 'files' 不是字符串,但如何将其转换为字符串?我试过使用 .ToString 但它不起作用。我对此很陌生。 感谢任何帮助。
错误在 axWindowsMediaPlayer.URL = 文件[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;
}
您需要提供 AxWindowsMediaPlayer.URL 属性的文件路径 您可以使用 FileInfo.FullName 属性获取它。
所以使用axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex].FullName;
FileInfo.FullName 如果你想要文件的完整路径。
FileInfo.Name 如果你只想要名字。
在您的代码中:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
axWindowsMediaPlayer1.URL = files[listBox1.SelectedIndex].FullName;
}