如何在C#中多选OpenFileDialog中限制上传次数

时间:2014-04-25 01:00:56

标签: c# file-upload

如何使用c#中的多选openfiledialog来限制要上传的文件数?

这是我的代码:

private void btn_upload_Click(object sender, EventArgs e)
{
    OpenFileDialog op1 = new OpenFileDialog();
    op1.Multiselect = true;
    op1.ShowDialog();
    op1.Filter = "allfiles|*.xls";
    textBox1.Text = op1.FileName;
    int count = 0;
    string[] FName;
    foreach (string s in op1.FileNames)
    {
        FName = s.Split('\\');
        File.Copy(s, "C:\\file\\" + FName[FName.Length - 1]);
        count++;
    }
    MessageBox.Show(Convert.ToString(count) + " File(s) copied");
 }

它将上传用户想要的数量。但我想仅限制5个文件。

2 个答案:

答案 0 :(得分:2)

您无法直接执行此操作,但您可以检查所选文件的数量并向用户显示消息:

if(op1.FileNames.Length > 5)
{
     MessageBox.Show("your message");
     return;
}

或者您可以从所选文件中获取前五个文件:

foreach (string s in op1.FileNames.Take(5))
{
    ...
}

答案 1 :(得分:0)

我刚刚测试过,这有效:

private void btn_upload_Click(object sender, EventArgs e)
{
    OpenFileDialog op1 = new OpenFileDialog();
    op1.Multiselect = true;
    op1.FileOk += openFileDialog1_FileOk;   // Event handler
    op1.ShowDialog();

    // etc
 }

void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
    OpenFileDialog dlg = sender as OpenFileDialog;
    if (5 < dlg.FileNames.Length)
    {
        MessageBox.Show("Too Many Files");
        e.Cancel = true;
    }
}