如何在TextBox中显示FolderBrowserDialog选中路径里的Name文件夹名称?
解决方案
要获取Name文件夹名称,只需在现有逻辑基础上再往上追溯一层目录即可,以下两种方式都能实现:
方式1:沿用Path类的写法
利用嵌套的Path.GetDirectoryName()先获取选中路径的祖父目录路径,再提取目录名:
name.Text = Path.GetFileName(Path.GetDirectoryName(Path.GetDirectoryName(folderBrowserDialog1.SelectedPath)));
逻辑拆解:
- 第一次
Path.GetDirectoryName(folderBrowserDialog1.SelectedPath)→ 获取MiddleName文件夹的路径 - 第二次
Path.GetDirectoryName(...)→ 获取Name文件夹的路径 Path.GetFileName(...)→ 提取路径末尾的Name作为结果
方式2:沿用DirectoryInfo的写法
通过DirectoryInfo.Parent属性连续获取两次父目录,再取目录名:
name.Text = new DirectoryInfo(folderBrowserDialog1.SelectedPath).Parent.Parent.Name;
注意事项:
如果存在选中路径层级不足的情况(比如用户选了层级更少的文件夹),Parent可能返回null,此时建议添加空值判断避免报错,示例:
var dirInfo = new DirectoryInfo(folderBrowserDialog1.SelectedPath); if(dirInfo?.Parent?.Parent != null) { name.Text = dirInfo.Parent.Parent.Name; } else { name.Text = "路径层级不足"; }
内容的提问来源于stack exchange,提问作者Tintin Santos
相关产品推荐
相关产品推荐

