Как заменить строковый путь в C # - PullRequest
2 голосов
/ 28 июля 2011
string = @"http://192.168.30.40/mylytica/Uploads/EncryptedFile/whg_12_20_2010.pdf";
if (strEncrypt.Contains("/EncryptedFile"))
{
     strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");
}
iFrame_pdf.Attributes.Add("src", strEncrypt);

у меня не работает :( мне нужно заменить путь к файлу Зашифровано в Расшифровано

спасибо заранее

Ответы [ 4 ]

2 голосов
/ 28 июля 2011

.NET Строки являются неизменяемыми, поэтому Replace() возвращает новую строку.

Сделай так:

string strEncrypt = @"http://192.168.30.40/mylytica/Uploads/EncryptedFile/whg_12_20_2010.pdf";    
if (strEncrypt.Contains("/EncryptedFile"))    
{    
  strEncrypt = strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");
}

Также: не забудьте подумать, каким должен быть результат, если strEncrypt что-то вроде "http://192.168.30.40/mylytica/Uploads/EncryptedFile/EncryptedFile.pdf".

1 голос
/ 28 июля 2011

Вы должны изменить это:

strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");

К этому:

strEncrypt = strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");

Из документов Microsoft на String.Replace (http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx):

Примечание Этот метод не изменяет значение текущего экземпляра. Вместо этого он возвращает новую строку, в которой все вхождения oldValue заменяются на newValue.

1 голос
/ 28 июля 2011

Строки являются неизменяемыми, поэтому вам необходимо присвоить новую строку переменной:

strEncrypt = strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");

0 голосов
/ 01 августа 2011

string strEncrypt = @ "http://192.168.30.40/mylytica/Uploads/EncryptedFile/whg_12_20_2010.pdf";
if (strEncrypt.Contains (" EncryptedFile "))
{
strEncrypt = strEncrypt.Replace (@" EncryptedFile ", @" DecryptedFile ");}

...