Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Opening multiple files (OpenFileDialog, C#)

I'm trying to open multiple files at once with the OpenFileDialog, using FileNames instead of FileName. But I cannot see any examples anywhere on how to accomplish this, not even on MSDN. As far as I can tell - there's no documentation on it either. Has anybody done this before?

like image 210
jay_t55 Avatar asked Aug 21 '09 12:08

jay_t55


People also ask

How do I select multiple files in OpenFileDialog in VB net?

Solution 1. You would have to create your own custom control to do that. By default OpenFileDialog does not support multi select of files from different folders. Please Sign up or sign in to vote.

How do I get the selected file from OpenFileDialog box?

OpenFileDialog component opens the Windows dialog box for browsing and selecting files. To open and read the selected files, you can use the OpenFileDialog. OpenFile method, or create an instance of the System. IO.


2 Answers

You must set the OpenFileDialog.Multiselect Property value to true, and then access the OpenFileDialog.FileNames property.

Check this sample

private void Form1_Load(object sender, EventArgs e) {     InitializeOpenFileDialog(); }  private void InitializeOpenFileDialog() {     // Set the file dialog to filter for graphics files.     this.openFileDialog1.Filter =         "Images (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|" +         "All files (*.*)|*.*";      //  Allow the user to select multiple images.     this.openFileDialog1.Multiselect = true;     //                   ^  ^  ^  ^  ^  ^  ^      this.openFileDialog1.Title = "My Image Browser"; }  private void selectFilesButton_Click(object sender, EventArgs e) {     DialogResult dr = this.openFileDialog1.ShowDialog();     if (dr == System.Windows.Forms.DialogResult.OK)     {         // Read the files         foreach (String file in openFileDialog1.FileNames)          {             // Create a PictureBox.             try             {                 PictureBox pb = new PictureBox();                 Image loadedImage = Image.FromFile(file);                 pb.Height = loadedImage.Height;                 pb.Width = loadedImage.Width;                 pb.Image = loadedImage;                 flowLayoutPanel1.Controls.Add(pb);             }             catch (SecurityException ex)             {                 // The user lacks appropriate permissions to read files, discover paths, etc.                 MessageBox.Show("Security error. Please contact your administrator for details.\n\n" +                     "Error message: " + ex.Message + "\n\n" +                     "Details (send to Support):\n\n" + ex.StackTrace                 );             }             catch (Exception ex)             {                 // Could not load the image - probably related to Windows file system permissions.                 MessageBox.Show("Cannot display the image: " + file.Substring(file.LastIndexOf('\\'))                     + ". You may not have permission to read the file, or " +                     "it may be corrupt.\n\nReported error: " + ex.Message);             }         }     } 
like image 80
RRUZ Avatar answered Sep 20 '22 22:09

RRUZ


You can use this method for text files:

OpenFileDialog open = new OpenFileDialog(); open.Filter = "All Files *.txt | *.txt"; open.Multiselect = true; open.Title = "Open Text Files";  if (open.ShowDialog() == DialogResult.OK) {     foreach (String file in open.FileNames)     {              string temp = YourRichTextBox.Text;           YourRichTextBox.LoadFile(file, RichTextBoxStreamType.PlainText);           YourRichTextBox.Text += temp;     } } 
like image 38
Matin Avatar answered Sep 17 '22 22:09

Matin