Как я могу принять любой тип файла в FileSavePicker?

У меня есть приложение, в котором пользователь может загружать файлы. Я пытаюсь использовать 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 пусто тоже не получается.

Я добавил декларацию выбора сохранения файла в мой манифест приложения и проверил опцию "Поддерживает любой тип файла". РЕДАКТИРОВАТЬ: Я только что понял, что это совершенно не связано с моей проблемой...

Можно ли вообще разрешить любой тип файла? Я был в состоянии сделать в FileOpenPicker, с помощью picker.FileTypeFilter.Add("*"), но я не могу найти способ сделать то же самое с FileSavePicker...

Примечание: в моем случае я уже знаю исходное имя файла, поэтому я могу использовать его для создания определенной записи в FileTypeChoices, но если файл не имеет расширения, я застрял...

1 ответ

Решение

Я немного удивлен, что документация не охватывает это вообще, но сообщение об ошибке, которое вы получаете, когда пытаетесь использовать фильтр всех файлов, довольно ясно:

"Этот инструмент выбора файлов не разрешает расширение всех файлов."

Другими словами, нет, вы не можете сделать это.

Как вы упомянули, вы сказали, что в большинстве случаев вы уже знаете имя файла, который пытаетесь сохранить, и вы можете просто установить тип файла для файла, который вы сохраняете. Конечно, есть сценарий, в котором у файла нет расширения, как вы указали, но на самом деле для этого также есть действительное "расширение":

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

Надеюсь это поможет.

Другие вопросы по тегам