You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何获取文件夹选择对话框选中的目标文件夹路径

解决Windows API Code Pack-Shell文件夹选择窗口的路径获取问题

嗨,我之前也踩过这个坑!你用CommonOpenFileDialog调出文件夹选择窗口后,不能直接把对话框对象或者弹窗结果转成字符串来拿路径——这俩返回的都不是你要的实际路径。

给你说正确的做法:

  • 首先确保你已经把对话框设置为文件夹选择模式(如果没加这步,默认是选文件的):dialog.IsFolderPicker = true;
  • 调用ShowDialog()得到结果后,只要结果是CommonFileDialogResult.Ok,就可以通过对话框的Folder.Path属性直接获取选中文件夹的完整路径。

举个完整的代码例子:

using Microsoft.WindowsAPICodePack.Dialogs;

// 初始化文件夹选择对话框
var folderDialog = new CommonOpenFileDialog();
folderDialog.IsFolderPicker = true;
folderDialog.Title = "请选择目标文件夹";

// 显示对话框并获取结果
CommonFileDialogResult dialogResult = folderDialog.ShowDialog();

// 判断用户是否确认选择
if (dialogResult == CommonFileDialogResult.Ok)
{
    // 这里就是你要的选中文件夹路径
    string selectedFolderPath = folderDialog.Folder.Path;
    Console.WriteLine($"选中的文件夹路径:{selectedFolderPath}");
}

为啥你之前的方法不行?

  • Convert.ToString(dialog)其实是调用了对话框对象的默认ToString()方法,只会返回类的属性描述,不是实际路径;
  • Convert.ToString(result)返回的是枚举值CommonFileDialogResult的名称(比如"Ok"),当然拿不到路径啦。

内容的提问来源于stack exchange,提问作者Jumanji

火山引擎 最新活动