C# 删除一个单词前的一段字符串

C# 删除一个单词前的一段字符串,c#,string,replace,C#,String,Replace,我有这样的字符串: G:\Projects\TestApp\TestWeb\Files\Upload\file.jpg 如何删除“文件”(G:\Projects\TestApp\TestWeb)之前的所有文本? 文件前的字符串可以更改,因此我无法计算字符数并在20个字符后删除它们 谢谢你的帮助:)试试这个 string s = oldString.Substring(oldString.IndexOf("Files")); 感谢Meta Knight的评论 如果字符串的早期部分可以有另一个“

我有这样的字符串:

G:\Projects\TestApp\TestWeb\Files\Upload\file.jpg
如何删除“文件”(G:\Projects\TestApp\TestWeb)之前的所有文本? 文件前的字符串可以更改,因此我无法计算字符数并在20个字符后删除它们

谢谢你的帮助:)

试试这个

string s = oldString.Substring(oldString.IndexOf("Files"));
感谢Meta Knight的评论

如果字符串的早期部分可以有另一个“文件”,那么最好是

string s = oldString.Substring(oldString.LastIndexOf("Files"));

您的意思是\files之前的路径不同吗?这当然有效,但我想补充一点,您希望找到要保留的字符串的唯一部分(g:\uploadfiles\john\files\Upload\将失败)。你可以考虑JPG或\文件\上传。另外,建议使用.tolower(),这样您就不会受到大小写差异的影响。我将使用LastIndexOf。这将最大限度地降低出错的风险。@Frozzare,注意这一点,因为如果在开始的某个地方可能有另一个“文件”,您可能希望按照我编辑的答案所示反转代码。除了使用LastIndexOf之外,最好搜索“\Files\”而不仅仅是“Files”,以防出现类似的路径例如“c:\MyReally-important Files\Pictures\Files\成人文件\NSFW”。