クラスの成績表プログラムの課題に取り組んでいます。ファイルを保存して後で呼び出す必要があることを除けば、詳細はそれほど重要ではありません。シリアル化、逆シリアル化などの方法を知っていて、すべてがうまくいっています。しかし、保存しようとすると問題が発生します。私はデータの保存シーン全体に少し慣れていないため、テクニックを正確には知りませんが、私が持っているものはうまくいくように思えます-試行するたびにエラーが発生することを除いて.
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 を調べ、できる限りすべての場所を検索しましたが、何が問題なのかわかりません。見落としているだけかもしれませんが、ここで髪をかきむしっています。少し助けが必要です。ありがとう。