/* ----------------------------------------------------------------- */ /// /// Import /// /// <summary> /// ファイルをインポートします。 /// </summary> /// /* ----------------------------------------------------------------- */ public static void Import(this PageCollection pages, Tag tag, int index, string path, int maxLength) { if (IoEx.Directory.Exists(path)) { foreach (var file in IoEx.Directory.GetFiles(path)) { Import(pages, tag, index, file, maxLength); } return; } pages.NewPage(tag, index, (page) => { var document = DocumentHandler.Create(path); document.Save(IoEx.Path.Combine(pages.Directory, page.FileName)); page.Document = document; page.UpdateAbstract(maxLength); }); }
/* ----------------------------------------------------------------- */ /// /// Recover /// /// <summary> /// データが格納されているフォルダから PageCollection オブジェクトを /// 再構築します。 /// </summary> /// /// <remarks> /// NOTE: 現在の方法ではタグ情報を復旧することはできない。 /// </remarks> /// /* ----------------------------------------------------------------- */ public static void Recover(this PageCollection pages, string direcotry, int maxLength) { if (!IoEx.Directory.Exists(direcotry)) { return; } foreach (var path in IoEx.Directory.GetFiles(direcotry)) { var filename = IoEx.Path.GetFileName(path).ToLower(); var exp = new Regex("^[0-9a-z]{32}$"); if (!exp.IsMatch(filename) || pages.Contains(filename)) { continue; } pages.NewPage(pages.Tags.Everyone, 0, (page) => { var document = DocumentHandler.Create(path); page.FileName = filename; page.Document = document; page.UpdateAbstract(maxLength); }); } }