所以我试图在C#中创建一个路径。我使用Environment.Machinename并将其存储为变量serverName。然后我创建另一个字符串变量,并在那里有一些其他路径扩展。到目前为止,这是我的代码:
string serverName = Environment.MachineName;
string folderName = "\\AlarmLogger";
无论我做什么,我都无法在AlarmLogger之前只获得一个反斜杠。有关如何在C#中指定路径的任何想法吗?
编辑:我想知道我的代码是否似乎不想正确粘贴。无论如何,当我粘贴它时,我只看到一个反斜杠,但我的代码有两个。因为转义字符序列。但是像
这样的东西string test = @"\\" + serverName + folderName
似乎不想为我工作。
答案 0 :(得分:20)
使用Path.Combine(serverName, folderName)
。 Path.Combine总是比自己完成更好的解决方案。
答案 1 :(得分:2)
您无法按照建议使用Path.Combine。原因是如果第一个条目是静态的,它会忽略静态变量,例如Environment.MachineName(有关详细信息,请参阅MSDN文档)。如果您使用Path.Combine(servername,foldername),您将获得“\ AlarmLogger”。另外,它将双斜杠解析成单斜杠。
话虽如此,你可以做以下事情(以及其他方式):
string serverName = Environment.MachineName;
string folderName = "\\\\AlarmLogger"; //this gives alarmlogger two leading slashes
string test = @"\\" + serverName + folderName.Substring(1,folderName.Length-1); //this removes one of the two leading slashes
除了子字符串之外,您还可以使用多种方法删除前导斜杠。
答案 2 :(得分:1)
目前尚不清楚你要做什么或出了什么问题。
如果您在字符串中包含反斜杠时遇到问题,则需要使用额外的反斜杠进行转义:
string twoBackslashes = "\\\\";
或者你可以这样做:
string twoBackslashes = @"\\";
如果您正在尝试操纵路径,请查看System.IO.Path类。特别是,Path.Combine可能很有用。