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.