在C#中创建文件路径

时间:2010-05-22 19:52:01

标签: c# file-io

所以我试图在C#中创建一个路径。我使用Environment.Machinename并将其存储为变量serverName。然后我创建另一个字符串变量,并在那里有一些其他路径扩展。到目前为止,这是我的代码:

string serverName = Environment.MachineName;
string folderName = "\\AlarmLogger";

无论我做什么,我都无法在AlarmLogger之前只获得一个反斜杠。有关如何在C#中指定路径的任何想法吗?

编辑:我想知道我的代码是否似乎不想正确粘贴。无论如何,当我粘贴它时,我只看到一个反斜杠,但我的代码有两个。因为转义字符序列。但是像

这样的东西
string test = @"\\" + serverName + folderName 

似乎不想为我工作。

3 个答案:

答案 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可能很有用。