【问题标题】:Offering multiple fileTypes with the same extension through FileSavePicker通过 FileSavePicker 提供具有相同扩展名的多个文件类型
【发布时间】:2014-03-15 17:31:02
【问题描述】:

在我的 WinRT / Windows 应用商店应用程序中,我希望允许用户通过 FileSavePicker 将文件保存为纯文本或降价文本。

savePicker.FileTypeChoices.Add("Markdown Text", new List<string>() { ".txt" });
savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" });

但是,FileSavePicker 返回的对象是StorageFile,它只知道扩展名.txt

如何允许用户在具有相同文件扩展名的一堆选项之间进行选择?有没有办法做到这一点?

【问题讨论】:

    标签: c# file windows-runtime windows-store-apps filesavepicker


    【解决方案1】:

    这不直接支持,因为系统仅将每个文件扩展名识别为单一类型。不过,您确实有一些选择。

    • 为每种文件类型创建不同的文件类型
    • 为每种文件类型创建不同的文件类型,然后在他们选择文件后将其重命名为.txt

    例如:

    savePicker.FileTypeChoices.Add("Markdown Text", new List<string>() { ".mtxt" });
    savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".ptxt" });
    
    var file = await savePicker.PickSaveFileAsync();
    await file.RenameAsync(file.DisplayName + ".txt");
    

    这有一个危险,如果他们已经有同名的文件,它不会警告他们,所以不一定建议。

    • 在用于保存提供选项的文件的按钮旁边有一个复选框/下拉菜单。

    其中,第一个或第三个是最理想的。如果它们之间存在差异,最好在文件系统中区分它。如果仍然不希望这样做,那么在他们选择保存之前给他们一个选项是最好的选择。

    编辑:@Krekkon 的想法也不错。将选项添加到设置弹出窗口是一个好主意。您需要通知他们该选项存在。另一种选择是使用类似MessageDialog 的东西,它会弹出三个按钮:Save as Plain TextSave as MarkupCancel。不幸的是,这会在流程中添加点击,因此可能并不理想。我个人认为在保存按钮旁边添加一个简单的控件很简单。

    【讨论】:

    • 谢谢内特。一如既往的有用!
    【解决方案2】:

    我认为你做不到。正如link 所说,也是。 也许您可以在设置窗格中添加一个选项,以使用默认类型。我的意思是: 您添加的默认类型是纯文本。但是用户可以转到设置并更改此内容。

    通过这种方式,您将选项添加到您的用户,但不要用另一个文件保存控件填充 gui

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      相关资源
      最近更新 更多