2009-08-21 7 views
23

J'essaie d'ouvrir plusieurs fichiers à la fois avec le OpenFileDialog, en utilisant FileNames au lieu de FileName. Mais je ne peux voir aucun exemple sur la façon d'accomplir cela, même sur MSDN. Pour autant que je sache, il n'y a pas non plus de documentation à ce sujet. Est-ce que quelqu'un a déjà fait ça?Ouverture de plusieurs fichiers (OpenFileDialog, C#)

Répondre

58

Vous devez définir la propriété OpenFileDialog.Multiselect sur true, puis accéder à la propriété OpenFileDialog.FileNames.

Vérifiez cet échantillon

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); 
      } 
     } 
    } 
Questions connexes