У меня есть код, который открывает OpenFileDialog, я проверяю размер файла, чтобы убедиться, что он не превышает определенный предел. Но если пользователь выбрал файл большого размера, мне нужно его предупредить и вернуть в диалоговое окно, чтобы выбрать другой файл или нажать «Отмена».
Вот что я пробовал:
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Jpeg files, PDF files, Word files|*.jpg;*.pdf;*.doc;*.docx";
while (dialog.ShowDialog() != DialogResult.Cancel)
{
var size = new FileInfo(dialog.FileName).Length;
if (size > 250000)
{
MessageBox.Show("File size exceeded");
continue;
}
}
РЕДАКТИРОВАТЬ: Я также пробовал следующий код, но он открывает диалоговое окно каждый раз, когда вызывается ShowDialog. Итак, если пользователь выбрал файл, в 3 раза превышающий предельный размер, диалоговое окно появится 3 раза.
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Jpeg files, PDF files, Word files|*.jpg;*.pdf;*.doc;*.docx";
dialog.FileOk += delegate(object s, CancelEventArgs ev)
{
var size = new FileInfo(dialog.FileName).Length;
if (size > 250000)
{
XtraMessageBox.Show("File size");
dialog.ShowDialog();
}
};
if (dialog.ShowDialog() == DialogResult.OK)
{
XtraMessageBox.Show("File Selected");
}