Newer
Older
PrismSoftware / EcomAnalysis / LogFileInfo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Globalization;

namespace EcomAnalysis {

    /// <summary>
    /// ログファイル情報クラス
    /// ファイル名から得られる情報の管理
    /// </summary>
    class LogFileInfo {
        public string Filepath { get; private set; }
        public string Filename { get; private set; }
        public DateTime ExecDate { get; private set; }
        public int Visit { get; private set; }
        public string Subject { get; private set; }

        public bool Set(string fn) {
            Filepath = fn;
            Filename = Path.GetFileNameWithoutExtension(fn);

            var parseStr = "yyyyMMdd_HHmmss";
            DateTime dt;
            if (!DateTime.TryParseExact(Filename.Substring(0, parseStr.Length),
                parseStr, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) return false;
            ExecDate = dt;

            var strs = Filename.Split('_');
            if (strs.Length < 4) return false;

            var visitStr = strs[strs.Length - 1];
            int v;
            if (!int.TryParse(visitStr, out v)) return false;
            Visit = v;

            Subject = Filename.Substring(parseStr.Length + 1,
                Filename.Length - parseStr.Length - visitStr.Length - 2);

            return true;
        }
    }
}