如何在 C# 中替换字符串路径
Posted
技术标签:
【中文标题】如何在 C# 中替换字符串路径【英文标题】:How to replace a string path in C# 【发布时间】:2011-07-28 07:23:56 【问题描述】: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);
它对我不起作用:( 我需要将文件路径 Encrypted 替换成 Decrypted
提前致谢
【问题讨论】:
【参考方案1】:.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"
,请记住考虑结果应该是什么。
【讨论】:
【参考方案2】:字符串是不可变的,因此您需要将新字符串分配给变量:
strEncrypt = strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");
【讨论】:
这个差点投了票,只是变量名不一样:) 你看起来不够近:)?【参考方案3】:你需要改变这个:
strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");
到这里:
strEncrypt = strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");
来自关于 String.Replace 的 Microsoft 文档 (http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx):
注意 此方法不会修改当前实例的值。相反,它返回一个新字符串,其中所有出现的 oldValue 都被 newValue 替换。
【讨论】:
【参考方案4】:字符串 strEncrypt = @"http://192.168.30.40/mylytica/Uploads/EncryptedFile/whg_12_20_2010.pdf"; if (strEncrypt.Contains("EncryptedFile")) strEncrypt = strEncrypt.Replace(@"EncryptedFile", @"DecryptedFile");
【讨论】:
以上是关于如何在 C# 中替换字符串路径的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 在给定文本中用忽略空格、回车或换行符替换字符串