Example #1
0
        /// <summary>
        /// 指定された月の日記ファイルを読み込んで、
        /// 日付をキーにした連想配列に入れて返します。
        /// 読み込む量は、先頭の10行、または1024文字まで。
        ///
        ///   連想配列["yyyyMMdd"] = テキスト
        ///
        /// 日記ファイルのパス
        /// diary/{yyyy}/{MM}/{yyyyMMdd}.txt
        /// </summary>
        /// <param name="year"></param>
        /// <param name="month"></param>
        /// <returns></returns>
        private Map <string, string> GetDiaryData(int year, int month)
        {
            var map = new Map <string, string>(); //キー:yyyyMMdd 値:先頭の10行
            var enc = Encoding.GetEncoding(932);

            //データフォルダのパスを作成します。{_dataDir}/yyyy/MM
            var dataDirPath = GetDataDirPath(year, month);

            //月末を取得します
            int endDay = DateTimeUtils.GetEndDate(year, month).Day;

            //1日 ~ 月末でループします
            for (int day = 1; day <= endDay; day++)
            {
                //日記ファイルの有無を確認します
                var yyyyMMdd = year + month.ToString("00") + day.ToString("00");
                var path     = FileUtils.AppendPath(dataDirPath, yyyyMMdd + ".txt");
                if (File.Exists(path) == false)
                {
                    continue;
                }

                //ファイルが存在する場合、先頭の10行を読み込みます
                var list = TextFileUtils.ReadTopLines(path, enc, 10);

                //読み込んだテキストを連想配列に設定します
                map[yyyyMMdd] = StringUtils.Left(string.Join("\n", list).Trim(), 1024);
            }

            return(map);
        }
        //初期処理を行います
        public bool Initialize(PluginCreateParam param)
        {
            //指定されたファイルがある場合は、ファイルを開きます
            if (FileUtils.Exists(param.Path))
            {
                //指定されたパスの先頭の1行を読み込みます
                var lines = TextFileUtils.ReadTopLines(param.Path, Encoding.UTF8, 1);
                try {
                    var path = lines[0].Trim();

                    //OSで指定されている方法でファイルを開きます
                    Process.Start(path);
                } catch (Exception ex) {
                    MsgBoxUtils.ShowErrorMsgBox(ex.Message);
                }
            }

            //false を返してプラグインを破棄させます
            return(false);
        }