如何通过仅替换路径的文件夹名称来创建新路径?

时间:2013-11-07 02:07:30

标签: c#

我尝试用下面的代码替换它,但是我收到一个错误,“无法识别的转义序列”。

string originalPath = @"C:\project\temp\code";
string newPath = "";

newPath = originalPath.Replace("C:\project\temp", "C:\project\files");

3 个答案:

答案 0 :(得分:1)

每个带有反斜杠的字符串文字都需要加倍的baskslashes,或者带引号字符串的@符号。

'无法识别的转义序列'是“\ p”。

试试这个:

newPath = originalPath.Replace(@"C:\project\temp", @"C:\project\files");

答案 1 :(得分:1)

我认为你应该使用双倍'/',因为第一个字符串是'@'而第二个字符串不是。

如果它不起作用,我建议使用string.contains和Put \ n找到temp的实例,然后在其后添加带有文件的字符串。

如果不起作用,请尝试使用正则表达式。

答案 2 :(得分:1)

在字符串声明中,如果使用@Wisil,则字符串将保持不变,实际上您无需担心转义序列。

您已使用@符号创建了OriginalPath变量,因此它将被视为:

originalPath =“C:\ project \ temp \ code”;

因此,以下两个陈述均有效:

1.string originalPath = @"C:\project\temp\code";
2.string originalPath = "C:\\project\\temp\\code";

因此,在替换字符串时,您可以使用以下任一方式:

解决方案1:
newPath = originalPath.Replace("C:\\project\\temp","C:\\project\\files");

解决方案2:

newPath = originalPath.Replace(@"C:\project\temp", @"C:\project\files");