Система. Windows. Формы. SaveFileDialog не осуществляет расширение по умолчанию

В настоящее время мы используем Sinatra для производственного проекта (еще не развернут вживую, еще в разработке).

По сути, это обертка базы данных, используемой унаследованным приложением, и предоставление веб-служб REST другим приложениям внутри, чтобы они могли взаимодействовать с унаследованным приложением без прямого доступа к БД.

Rails был рассмотрен, но не использовался, потому что:

  • Нет уровня представления (по сути, представления - это просто ответы JSON / XML REST) ​​
  • Модель реализована с использованием Sequel (ActiveRecord отстой имеет с устаревшими БД с причудливыми, нестандартными структурами, но Sequel довольно хорош для этого)
  • Уровень контроллера и маршрутизации довольно прост (хотя в Ruby и поддерживается некоторая сложная бизнес-логика)

Учитывая эти требования, Rails пригоден для использования, но излишне, когда Синатра замечательно попадает в точку.

9
задан Community 23 May 2017 в 11:46
поделиться

3 ответа

Насколько я знаю, нет надежного способа принудительно применить данное расширение файла. В любом случае рекомендуется проверить правильное расширение после закрытия диалогового окна и сообщить пользователю, что он выбрал недопустимый файл, если расширение не совпадает.

3
ответ дан 4 December 2019 в 12:19
поделиться

Вы можете обработать событие FileOk и отменить его, если это неправильное расширение

private saveFileDialog_FileOk(object sender, CancelEventArgs e)
{
    if (!saveFileDialog.FileName.EndsWith(".foo"))
    {
        MessageBox.Show("Please select a filename with the '.foo' extension");
        e.Cancel = true;
    }
}
15
ответ дан 4 December 2019 в 12:19
поделиться

Ближе всего к этому я подошел с помощью события FileOk. Например:

dialog.FileOk += openFileDialog1_FileOk;

private void openFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
  if(!dialog.FileName.EndsWith(".foo"))
  { 
     e.Cancel = true;
  }
}

Оформить заказ Событие FileOK в MSDN.

0
ответ дан 4 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: