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
相关产品推荐
相关产品推荐

