-2

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

完整路径应如下所示:

......Documents\JukeBox\MichaelJackson\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)代码看起来很糟糕 - 有没有更好的方法 - 或者有人有有用文献的链接

4

1 回答 1

5

逐字字符串文字是字符串文字的一个特性,影响文字的解析方式。
您没有任何字符串文字;这是完全无关的。

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

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

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

于 2017-10-23T19:32:10.373 回答