Öffnen Sie OpenFileDialog so lange, bis Sie eine gültige Datei ausgewählt haben

Ich habe Code, der den OpenFileDialog öffnet. Ich überprüfe die Größe der Datei, um sicherzustellen, dass sie ein bestimmtes Limit nicht überschreitet. Wenn der Benutzer jedoch eine große Datei ausgewählt hat, muss er gewarnt und zum Dialogfeld zurückgeleitet werden, in dem er eine andere Datei auswählen oder auf Abbrechen klicken kann.

Das habe ich versucht:

        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;
                }
        }

BEARBEITEN: Ich habe auch den folgenden Code ausprobiert, aber er öffnet den Dialog jedes Mal, wenn der ShowDialog aufgerufen wird. Wenn der Benutzer also eine Datei ausgewählt hat, die dreimal so groß ist wie das Limit, wird das Dialogfeld dreimal angezeigt.

  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");
        }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage