简体   繁体   中英

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?

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);

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM