我正在开发一种工具,该工具可以将.fbx模型和用户输入处理到单个文件中,以供游戏使用。用户按下“导入模型”按钮时的代码如下,每个按钮都类似:

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


问题是,每当我单击“确定”时,都会出现一个UnauthorizedAccessException。我尝试从C:\Users\Owner\Downloads以及C:\Users\Owner\DesktopC:\驱动器本身导入文件,但是仍然会发生。我可以在此代码中添加些什么来访问这些(和其他)文件夹?

最佳答案

您正在尝试通过旨在从文件读取的方法从目录读取:

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


替换为:

E_model = File.ReadAllBytes(ofd.FileName);

09-25 18:31