我有一个应该播放音乐文件的子。 我可以轻松找到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)代码看起来很糟糕 - 是否有更好的方法 - 或者是否有人链接到有用的文献
答案 0 :(得分:5)
逐字字符串文字是字符串文字的一项功能,它会影响文字的解析方式。
你没有任何字符串文字;这是完全无关紧要的。
@paths
是一个完全不同的功能,它允许在关键字后面命名标识符(例如,int @int
)。这也无关紧要。
您可能在调试器中看到了值,该值显示C#源以写入值,包括转义序列。你的字符串实际上没有双斜杠。
但是,Path.Combine()
合并文件夹(通过在它们之间添加斜杠);在那里传递扩展是没有意义的。