1

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

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 を調べ、できる限りすべての場所を検索しましたが、何が問題なのかわかりません。見落としているだけかもしれませんが、ここで髪をかきむしっています。少し助けが必要です。ありがとう。

4

1 に答える 1