Opening multiple files (OpenFileDialog, C#)

前端 未结 2 499
清酒与你
清酒与你 2020-12-05 04:55

I\'m trying to open multiple files at once with the OpenFileDialog, using FileNames instead of FileName. But I cannot see any examples

相关标签:
2条回答
  • 2020-12-05 05:04

    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;
        }
    }
    
    0 讨论(0)
  • 2020-12-05 05:18

    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);
                }
            }
        }
    
    0 讨论(0)
提交回复
热议问题