【问题标题】:OpenFileDialog and UnauthorizedAccessExceptionOpenFileDialog 和 UnauthorizedAccessException
【发布时间】:2015-10-29 01:09:00
【问题描述】:

我正在开发一种工具,可将 .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:\ 驱动器本身导入文件,但它仍然会发生。我可以在此代码中添加什么来访问这些(和其他)文件夹?

【问题讨论】:

    标签: c# openfiledialog unauthorizedaccessexcepti


    【解决方案1】:

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

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

    替换为:

    E_model = File.ReadAllBytes(ofd.FileName);
    

    【讨论】:

      【解决方案2】:

      你无法准备好目录,你必须读取一个文件:

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

      尝试在此处添加文件名

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 2011-07-03
        • 1970-01-01
        • 1970-01-01
        • 2012-10-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多