OpenFileDialog и исключение UnauthorizedAccessException

Я разрабатываю инструмент, который обрабатывает модель .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;
    }
}

Проблема в том, что всякий раз, когда я нажимаю OK, появляется UnauthorizedAccessException. Я пытался импортировать файлы с C:\Users\Owner\Downloads, а также с C:\Users\Owner\Desktop и самого диска C:\, но это все равно происходит. Что я мог бы добавить в этот код, чтобы получить доступ к этим (и другим) папкам?


person JoeShmo62    schedule 29.10.2015    source источник


Ответы (2)


Вы пытаетесь прочитать из каталога с помощью метода, предназначенного для чтения из файла:

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

Замените его на:

E_model = File.ReadAllBytes(ofd.FileName);
person Dmitry    schedule 29.10.2015

Вы не можете подготовить каталог, вам нужно прочитать файл:

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

Попробуйте добавить сюда имя файла

person User2012384    schedule 29.10.2015