无法从文件路径中删除双斜杠
Cannot remove double slashes from file path
我有一个可以播放音乐文件的低音炮。
我可以轻松找到 MyDocuments。
我什至可以使用 Path.Combine 来连接字符串的其余部分。
完整路径应如下所示:
......Documents\JukeBox\MichaelJackson.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) 代码看起来很糟糕 - 有没有更好的方法 - 或者有人 link 有帮助的文献
逐字字符串文字是字符串文字的一项功能,它会影响文字的解析方式。
您没有任何字符串文字;那是完全无关紧要的。
@paths
是一个完全不同的特性,它允许标识符以关键字命名(例如,int @int
)。也无所谓。
您可能在调试器中看到了值,它显示了用于写入值的 C# 源代码,包括转义序列。您的字符串实际上没有双斜杠。
但是,Path.Combine()
合并了 文件夹 (通过在它们之间添加斜杠);在那里传递扩展名是没有意义的。
我有一个可以播放音乐文件的低音炮。 我可以轻松找到 MyDocuments。 我什至可以使用 Path.Combine 来连接字符串的其余部分。
完整路径应如下所示:
......Documents\JukeBox\MichaelJackson.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) 代码看起来很糟糕 - 有没有更好的方法 - 或者有人 link 有帮助的文献
逐字字符串文字是字符串文字的一项功能,它会影响文字的解析方式。
您没有任何字符串文字;那是完全无关紧要的。
@paths
是一个完全不同的特性,它允许标识符以关键字命名(例如,int @int
)。也无所谓。
您可能在调试器中看到了值,它显示了用于写入值的 C# 源代码,包括转义序列。您的字符串实际上没有双斜杠。
但是,Path.Combine()
合并了 文件夹 (通过在它们之间添加斜杠);在那里传递扩展名是没有意义的。