无法从文件路径中删除双斜杠

时间:2017-10-23 19:27:11

标签: c# filepath verbatim-string

我有一个应该播放音乐文件的子。 我可以轻松找到MyDocuments。 我甚至可以使用Path.Combine来连接字符串的其余部分。

完整路径应如下所示:

......文档\ JUKEBOX \迈克尔·杰克逊\ 01.wav

但是我得到的是双斜杠而不是单斜杠

private static void playChoice(string band, int choice)
    {
        var myDocs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        string filename = "0" + choice;
        string[] paths = { myDocs, "JukeBox", band, filename, ".wav" };
        var fullPath = Path.Combine(@paths);
        var player = new System.Media.SoundPlayer(fullPath);
        player.Play();
    }

A)如何删除双斜杠,因为我的逐字说明符不起作用 B)代码看起来很糟糕 - 是否有更好的方法 - 或者是否有人链接到有用的文献

1 个答案:

答案 0 :(得分:5)

逐字字符串文字是字符串文字的一项功能,它会影响文字的解析方式。
你没有任何字符串文字;这是完全无关紧要的。

@paths是一个完全不同的功能,它允许在关键字后面命名标识符(例如,int @int)。这也无关紧要。

您可能在调试器中看到了值,该值显示C#源以写入值,包括转义序列。你的字符串实际上没有双斜杠。

但是,Path.Combine()合并文件夹(通过在它们之间添加斜杠);在那里传递扩展是没有意义的。