如何获取非根目录的第一个文件夹路径?
问题原因与解决方法
Path.GetPathRoot方法的作用是获取路径的根目录,在Windows系统中就是盘符加根斜杠(比如d:\),这是方法的设计逻辑,所以它本来就不会返回d:\test1这种一级子目录路径。
要获取目标路径d:\test1,可以用以下两种方法:
方法1:使用Path.GetDirectoryName
这个方法会返回指定路径的父目录路径,无论路径指向目录还是文件都适用:
var targetPath = Path.GetDirectoryName(textBoxPath.Text); // 输入"d:\test1\test2"时,返回"d:\test1"
方法2:使用Directory.GetParent
通过获取路径的父目录对象,再提取其完整路径:
var parentDirectory = Directory.GetParent(textBoxPath.Text); if (parentDirectory != null) { var targetPath = parentDirectory.FullName; // 输入"d:\test1\test2"时,得到"d:\test1" }
注意:如果输入的路径本身就是根目录(比如d:\),这两个方法都会返回null,使用时需要做空值判断。
内容的提问来源于stack exchange,提问作者Daniel Lip
相关产品推荐
相关产品推荐

