如何在C#中的路径字符串中获取倒数第二个目录

use*_*603 4 c# string directory path

例如,

string path = @"C:\User\Desktop\Drop\images\";
Run Code Online (Sandbox Code Playgroud)

我只需要得到 @"C:\User\Desktop\Drop\

这有什么简单的方法吗?

Tim*_*ter 9

你可以使用PathDirectory类:

DirectoryInfo parentDir = Directory.GetParent(Path.GetDirectoryName(path));
string parent = parentDir.FullName; 
Run Code Online (Sandbox Code Playgroud)

请注意,如果路径不以directory-separator char结尾,则会得到不同的结果\.然后images将被理解为文件名而不是目录.

您也可以使用后续调用 Path.GetDirectoryName

string parent = Path.GetDirectoryName(Path.GetDirectoryName(path));
Run Code Online (Sandbox Code Playgroud)

此行为记录在此处:

由于返回的路径不包含DirectorySeparatorChar或AltDirectorySeparatorChar,因此将返回的路径传回GetDirectoryName方法将导致在结果字符串的每次后续调用中截断一个文件夹级别.例如,将路径"C:\ Directory\SubDirectory\test.txt"传递到GetDirectoryName方法将返回"C:\ Directory\SubDirectory".将该字符串"C:\ Directory\SubDirectory"传递到GetDirectoryName将导致"C:\ Directory".