2013-11-07 3 views
0

Я попытался заменить его на код ниже, но я получаю сообщение об ошибке «непризнанная escape-последовательность».Как создать новый путь, заменив только имя папки пути?

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

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

попытаться удвоить ваши обратные косые черты C: \\ project \\ temp –

ответ

1

В строковой декларации, если вы используете @ Symbol, тогда String будет испорчен, на самом деле вам не нужно беспокоиться о escape-последовательностях.

вы создали переменную OriginalPath с символом @ поэтому он будет рассматриваться как:

originalPath = "C: \ Проект \ Temp \ код";

Поэтому следующие оба утверждения справедливы:

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

Поэтому при замене строки вы можете использовать любой из пути asbelow:

Решение 1:
newPath = originalPath.Replace("C:\\project\\temp","C:\\project\\files");

Раствор 2:

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

1

Каждая строка символов с обратной косой черты необходимо либо удвоенные baskslashes, или символ @ для строки в кавычках.

«непризнанная escape-последовательность» - «\ p».

Попробуйте это:

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

Я думаю, вы должны использовать двойной «/», потому что первая строка «@» и второй нет.

Если это не сработает, я бы предложил найти экземпляр temp с помощью string.contains и Put \ n после этого добавить строку с файлами.

Если это не работает, попробуйте использовать регулярное выражение.

Смежные вопросы