Я работаю над заданием по программе журнала успеваемости для класса; детали не так важны, кроме как знать, что мне нужно сохранить файл и вызвать его позже. Я знаю, как сериализовать, десериализовать и т. Д., И там все хорошо. Но проблема возникает, когда я пытаюсь сэкономить. Я немного новичок во всей сцене сохранения данных, и я точно не знаю методов, но то, что у меня есть, похоже, должно работать - за исключением того, что каждый раз, когда я пытаюсь это сделать, я получаю сообщение об ошибке.
private static void Save (IList<GradebookEntry> gradebook) {
Console.WriteLine ("Saving changes. Please wait...");
using (IsolatedStorageFile stored = IsolatedStorageFile.GetStore (IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null)) {
try {
using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream ("Temp.utc", FileMode.Create, stored)) {
BinaryFormatter bform = new BinaryFormatter ();
bform.Serialize (isoStream, gradebook);
string[] s = stored.GetDirectoryNames ();
stored.DeleteFile ("Gradebook.utc");
stored.MoveFile ("Temp.utc", "Gradebook.utc"); // #!!
}
Console.WriteLine ("Changes saved.");
}
catch (Exception ex) {
Console.WriteLine ("Saving failed. Reason: {0}", ex.Message);
}
finally {
if (stored.FileExists("Temp.utc")) {
stored.DeleteFile ("Temp.utc");
}
}
}
}
Отмеченная строка, куда я пытаюсь переместить файл, - это то место, где у меня возникают проблемы. Все остальное работает нормально, но когда я дохожу до этой строки, возникает исключение IsolatedStorageException с сообщением «Операция запрещена». Я просмотрел все, я изучил MSDN, я обыскал все места, где мог, но не могу понять, в чем проблема. Вероятно, я просто не заметил этого, но я рву волосы здесь и мне нужна небольшая помощь. Спасибо.