来自 OFD 的文件路径不适用于 TagLib

File path from OFD not working with TagLib

我想 select 单击按钮后通过打开文件对话框打开 mp3 文件,并将文件名更改为已指定的字符串。问题是,当我将文件路径作为变量插入 TagLib.File.Create() 时,出现 FileNotFound 异常。 这是代码:

public partial class Form1 : Form
{
    OpenFileDialog ofd = new OpenFileDialog();

    string location = null;

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        ofd.ShowDialog();
        location = ofd.SafeFileName;
        var target = TagLib.File.Create(location);

        target.Tag.Title = "it works";
        target.Save();
    }
}

尝试使用

 location = ofd.FileName;

获取完整的文件路径,而不是

location = ofd.SafeFileName;

它给你文件名。

最佳做法也是:

TagLib.File target = null;
        if (!string.IsNullOrEmpty(location) && File.Exists(location))
        {
             target = TagLib.File.Create(location);
        }
        else
        {
            //log or print a warning 
        }