【问题标题】:How can I accept any file type in FileSavePicker?如何在 FileSavePicker 中接受任何文件类型?
【发布时间】:2013-06-12 16:43:00
【问题描述】:

我有一个应用程序,用户可以在其中下载文件。我正在尝试使用FileSavePicker 让他选择位置和文件名。该文件可以是任何类型,所以我希望FileSavePicker 接受任何文件类型,但显然我不允许这样做:

picker.FileTypeChoices.Add("All files", new[] { "*" });
// Error: "Ce sélecteur de fichiers n’autorise pas toutes les extensions de fichier."
// (which translates roughly to "This file picker doesn't allow all file extensions")

或者这个:

picker.FileTypeChoices.Add("All files", new string[0]);
// "Error HRESULT E_FAIL has been returned from a call to a COM component."

尝试将 FileTypeChoices 留空也会失败。

我在我的应用清单中添加了一个 File Save Picker 声明,并检查了“支持任何文件类型”选项。 编辑:我刚刚意识到这与我的问题完全无关...

是否可以允许任何文件类型?我已经能够在FileOpenPicker 中使用picker.FileTypeFilter.Add("*") 进行操作,但我找不到使用FileSavePicker 进行相同操作的方法...

注意:在我的例子中,我已经知道文件的原始名称,所以我可以用它在FileTypeChoices 中创建一个特定的条目,但是如果文件没有扩展名,我就卡住了......

【问题讨论】:

标签: .net windows-store-apps filesavepicker


【解决方案1】:

我有点惊讶文档根本没有涵盖这一点,但是当您尝试使用所有文件过滤器时收到的错误消息非常清楚:

“此文件选择器不允许所有文件扩展名。”

换句话说,不,你不能这样做。

正如您所提到的,您说在大多数情况下您已经知道要保存的文件的名称,您可以将文件类型选择设置为您要保存的文件的名称。当然,在某些情况下,文件没有您指出的扩展名,但实际上也有一个有效的“扩展名”:

picker.FileTypeChoices.Add("Unknown", new List<string>() { "." });

希望这会有所帮助。

【讨论】:

  • 太好了,谢谢!理想情况下,我希望能够使用通配符,但你的无扩展名文件技巧应该可以解决我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-02
  • 1970-01-01
相关资源
最近更新 更多