JoeShmo62
JoeShmo62

Reputation: 23

OpenFileDialog and UnauthorizedAccessException

I'm developing a tool that processes an .fbx model and user input into a single file for use in a game. The code for when the user presses the "Import Model" button is as follows, and is similar for every button:

private void E_ImportModelButton_Click_1(object sender, EventArgs e)
{
    E_model = null; // byte array where model is stored
    E_SelectedFileLabel.Text = "No Model Selected"; // label on form
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.Filter = "FBX Model (.fbx)|*.fbx";
    ofd.Multiselect = false;
    if (ofd.ShowDialog() == DialogResult.OK)
    {
        // adjusts variables for game file
        string s = Path.GetDirectoryName(ofd.FileName);
        E_model = File.ReadAllBytes(s);
        E_SelectedFileLabel.Text = "File Selected: " + ofd.FileName;
    }
}

The problem is, whenever I click OK, an UnauthorizedAccessException occurs. I have tried importing files from C:\Users\Owner\Downloads as well as C:\Users\Owner\Desktop and the C:\ drive itself, but it still occurs. What could I add to this code to gain access to these (and other) folders?

Upvotes: 2

Views: 220

Answers (2)

User2012384
User2012384

Reputation: 4919

You can't ready the directory, you have to read a file:

string s = Path.GetDirectoryName(ofd.FileName);
E_model = File.ReadAllBytes(s);

Try adding the file name here

Upvotes: 1

Dmitry
Dmitry

Reputation: 14059

You are trying to read from directory via the method intended to read from a file:

string s = Path.GetDirectoryName(ofd.FileName);
E_model = File.ReadAllBytes(s);

Replace it with:

E_model = File.ReadAllBytes(ofd.FileName);

Upvotes: 1

Related Questions