Несмотря на то, что ответ Дэвида напрямую связан с вопросом, который он задает, при определении намерений пользователя необходимо учесть больше. Вы не можете полагаться только на расширение файла, чтобы знать, что пользователь хочет сделать. В конце концов, пользователь мог бы вручную ввести .form
в имя файла, и что тогда вам следует делать?
Вместо этого такие опции не должны быть реализованы на этом уровне. По моему опыту, такие вещи реализованы на промежуточном уровне. Например, подумайте о редактировании / производстве видео. Пользователь может пожелать отобразить видео как MP4
видео. Или возможно AVI
. Однако каждый из этих возможных форматов имеет множество других специфических опций, таких как видеокодеки, качество и многое другое.
Что необходимо сделать в подобных ситуациях, это предоставить дополнительный уровень пользовательских опций перед сохранением файла. Пусть это будет частью "проекта" в некотором смысле. Пользователь делает то, что ему нужно, со своим контентом, и часть процесса решает, какой тип выходного формата он намеревается создать. Когда пользователь решает сохранить, прежде чем запрашивать их в качестве имени файла, сначала запросите у них другие конкретные параметры формата, в зависимости от того, какие форматы поддерживает ваше приложение.
Короче говоря, не полагайтесь на само расширение файла, чтобы определить все намерения пользователя. Перед выбором выходного расширения должен быть промежуточный уровень выбора пользователя для форматирования файла.