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