Как я могу принять любой тип файла в 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>() { "." });
Надеюсь это поможет.