【问题标题】:UWP FileSavePicker.PickSaveFileAsync() throws Unspecified errorUWP FileSavePicker.PickSaveFileAsync() 抛出未指定的错误
【发布时间】:2017-01-25 05:27:14
【问题描述】:

我第一次尝试使用 FileSavePicker,但是当我调用 await picker.PickSaveFileAsync(); 时,我不断收到“未指定错误”,没有异常源

我注意到异常数据字典包含一个值“RestrictedErrorObject-{1F77CB5A-D22F-071F-2637-E6B7C7573653}”,所以我假设它与权限相关。

var picker = new Windows.Storage.Pickers.FileSavePicker();
//picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary;
//picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Downloads;                
//picker.DefaultFileExtension = "csv";
//picker.FileTypeChoices.Add("CSV", new List<string>() { "*.csv" });
picker.SuggestedFileName = fileName;

StorageFile newFile = await picker.PickSaveFileAsync();

【问题讨论】:

  • 您是否尝试过添加默认文件扩展名?我认为没有它,选择器确实会崩溃,至少我确信打开文件选择器。
  • @AdrianK 也许你需要在 AppManifest 中添加一些功能

标签: c# uwp


【解决方案1】:

所以它现在可以工作了,我使用了 Microsoft 文章的一些代码(如下所示)。老实说,我很难看出有什么区别。我绝对不需要在清单中做任何事情。我使用了默认扩展名 - 但删除了通配符 { ".csv" },所以可能就是这样。但是如果使用通配符,你会得到“参数不正确”的异常,这与我之前得到的异常不同。

此代码有效:

var savePicker = new Windows.Storage.Pickers.FileSavePicker();
savePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary;
savePicker.FileTypeChoices.Add("CSV", new List<string>() { ".csv" });
savePicker.SuggestedFileName = fileName;

StorageFile newFile = await savePicker.PickSaveFileAsync();

【讨论】:

  • 我遇到了同样的问题。我认为FileTypeChoices.Add 的行是在“修复”它。
【解决方案2】:

我通过添加文件类型解决了这个错误:

picker.FileTypeFilter.Add(".csv");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-25
    • 2014-07-09
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 2015-08-31
    • 2020-11-18
    • 1970-01-01
    相关资源
    最近更新 更多