/// <summary> /// ノートの読み込み /// </summary> public void loadNotes() { //フォルダ作成 makeDir(); //ノートを読込 IEnumerable <string> files = Directory.EnumerateFiles(@".\Notes"); XmlSerializer serializer = new XmlSerializer(typeof(Settings)); foreach (string file in files) { try { StreamReader sr = new StreamReader(file, new UTF8Encoding(false)); Settings settings = (Settings)serializer.Deserialize(sr); sr.Close(); //ノートを作ってプロパティをセット NoteForm nf = new NoteForm(); notes.Add(nf); nf.Size = settings.Size; nf.Location = settings.Point; Color color = Color.FromArgb(settings.Color); nf.BackColor = color; nf.title = settings.Title; nf.isHyperLink = settings.HyperLink; nf.isTopMost = settings.TopMost; nf.loadRtf(settings.RtfName); nf.StartPosition = FormStartPosition.Manual; nf.Owner = this; nf.Show(); settings = null; } catch { MessageBox.Show("ノートの読み込みに失敗しました。"); } } if (Application.OpenForms.Count == 1) { newNote(); } }
/// <summary> /// ノートの保存 /// </summary> public void saveNotes() { makeDir(); //ノート保存用ディレクトリの作成 //既にあるデータをクリア fileDel(@".\Notes"); fileDel(@".\rtf"); //XmlSerializerオブジェクトを作成 XmlSerializer serializer = new XmlSerializer(typeof(Settings)); for (int i = 0; i < notes.Count; i++) { //各NoteFormにループ処理 //保存用クラスのインスタンス作成 Settings settings = new Settings(); NoteForm nf = (NoteForm)notes[i]; //保存用インスタンスにプロパティセット settings.Size = nf.Size; settings.Point = nf.Location; settings.Color = nf.BackColor.ToArgb(); settings.Title = nf.title; settings.HyperLink = nf.isHyperLink; settings.TopMost = nf.isTopMost; rtfName = rtfDir + i + ".rtf"; settings.RtfName = rtfName; nf.saveRtf(rtfName); //ファイル名の作成 xmlName = @".\Notes\Note" + i + ".config"; //書き込むファイルを開く StreamWriter sw = new StreamWriter(xmlName, false, new UTF8Encoding(false)); //シリアル化し、XMLファイルに保存する serializer.Serialize(sw, settings); sw.Close(); } }