如何使用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个文件。
答案 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;
}
}