Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

OpenFileDialog throwing System.IO.FileNotFoundException before it shows the browse dialog

I started creating a simple OpenFileDialog in .NET 5.0,
but I get a
System.IO.FileNotFoundException: 'Unable to find the specified file.' exception before I can even see the browse dialog.

The dialog should open when I click on the m_FileUploader button. This is the code I use:

Main.Designer.cs

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

  // 
  // m_FileUploader
  // 
  this.m_FileUploader.Location = new System.Drawing.Point(508, 17);
  this.m_FileUploader.Name = "m_FileUploader";
  this.m_FileUploader.Size = new System.Drawing.Size(234, 52);
  this.m_FileUploader.TabIndex = 0;
  this.m_FileUploader.Text = "Browse descr_names.txt";
  this.m_FileUploader.UseVisualStyleBackColor = true;
  this.m_FileUploader.Click += new System.EventHandler(this.FileUploader_Click);
  // 
  // m_OpenFileDialog
  // 
  this.m_OpenFileDialog.Filter = "Names |*descr_names.txt";
  this.m_OpenFileDialog.InitialDirectory = "Documents";
  this.m_OpenFileDialog.Title = "Open descr_names.txt";
  this.m_OpenFileDialog.RestoreDirectory = true;

Main.cs

  private void FileUploader_Click (Object sender, EventArgs e) {
    if (m_OpenFileDialog.ShowDialog() == DialogResult.OK) { // Exception throws here
      // Do stuff with file
    }
  }

When I click continue in debug, the rest of the code is executed correctly, but the standalone executable does not like this exception and stops the application.

What am I forgetting here?

>Solution :

You should be using different value for InitialDirectory, since value Documents might not be handled correctly. Instead you should do:

using System;

// Get path for User's documents folder from .NET
var pathToDocs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
this.m_OpenFileDialog.InitialDirectory = pathToDocs;

See documentation for more details about SpecialFolder. Or InitialDirectory documentation.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading