删除部分字符串

Izz*_*zzy 1 c# string directory

我有以下字符串

string a = @"\\server\MainDirectory\SubDirectoryA\SubdirectoryB\SubdirectoryC\Test.jpg";
Run Code Online (Sandbox Code Playgroud)

我正在尝试删除部分字符串,所以最后我想留下

string a = @"\\server\MainDirectory\SubDirectoryA\SubdirectoryB";
Run Code Online (Sandbox Code Playgroud)

所以目前我正在做

string b = a.Remove(a.LastIndexOf('\\'));
string c = b.Remove(b.LastIndexOf('\\'));
Console.WriteLine(c);
Run Code Online (Sandbox Code Playgroud)

这给了我正确的结果.我想知道是否有更好的方法来做到这一点?因为我必须在很少的地方做这件事.

注:SubdirectoryC长度将是未知的.因为它是由用户输入的数字/字母组成的

Ste*_*eve 8

Path.GetDirectoryName

string a = @"\\server\MainDirectory\SubDirectoryA\SubdirectoryB\SubdirectoryC\Test.jpg";
string b = Path.GetDirectoryName(Path.GetDirectoryName(a));
Run Code Online (Sandbox Code Playgroud)

如MSDN中所述,如果您传递目录,它也可以工作

....将返回的路径传回GetDirectoryName方法将导致在结果字符串的每次后续调用中截断一个文件夹级别

当然,如果您至少有两个目录级别,这是安全的