You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP开发调用异步方法触发调试问题求助

UWP选择保存文件夹触发调试器的解决方法

核心问题修正

你需要选择保存文件夹,但误用了FileOpenPicker(用于选择文件),且未配置必要的过滤规则,这是触发调试器的主要原因。正确做法是使用FolderPicker,并添加至少一个文件类型过滤。

正确代码示例

private async void OpenFolderButton_Click(object sender, RoutedEventArgs e)
{
    FolderPicker folderPicker = new FolderPicker();
    folderPicker.ViewMode = PickerViewMode.Thumbnail;
    folderPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
    // 必须添加至少一个文件类型过滤,否则会抛出异常
    folderPicker.FileTypeFilter.Add("*");

    StorageFolder folder = await folderPicker.PickSingleFolderAsync();
    if (folder != null)
    {
        filePath.Text = folder.Path;
        // 若需后续访问该文件夹,可添加到未来访问列表
        // StorageApplicationPermissions.FutureAccessList.Add(folder);
    }
}

原代码的错误点

  • 选择器类型错误:FileOpenPicker用于选择单个/多个文件,选择文件夹必须使用FolderPicker
  • 缺少过滤规则:所有文件/文件夹选择器都要求至少添加一个FileTypeFilter,否则调用异步方法时会抛出ArgumentException,触发调试器
  • 权限未验证:需确保在Package.appxmanifest中声明了对应库的访问权限(比如图片库权限)

额外排查点

  • 确认选择器调用在UI线程执行,后台线程调用会导致异常
  • 检查Visual Studio调试设置:若开启了“抛出所有异常”(调试→窗口→异常设置),可取消勾选非关键异常类型,避免不必要的调试触发

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 19:58:14