プロジェクト

全般

プロフィール

統計
| リビジョン:

h-you / branches / src / UpDateCopy / ClsCommon.cs @ 70

履歴 | 表示 | アノテート | ダウンロード (4.94 KB)

1
using System;
2
using System.Collections.Generic;
3
using System.IO;
4
using System.Linq;
5
using System.Security.Cryptography;
6
using System.Text;
7
using System.Threading.Tasks;
8

    
9
namespace UpDateCopy
10
{
11
    public static class ClsCommon
12
    {
13
        #region 定数
14

    
15
        /// <summary>
16
        /// 監視対象プロセス名
17
        /// </summary>
18
        public const string s_TargetProcess = "現場監督秘書";
19
        /// <summary>
20
        /// パスを定数で定義する
21
        /// </summary>
22
        //public const string s_UPDATE_FILE_PATH = @"Z:\52GenbaKantokuHisyo";
23
        //public const string s_UPDATE_FILE_PATH = @"Z:\5-2現場監督秘書";
24
        //private const string s_UPDATE_FILE_PATH = @"Z:\⑤IT事業部用\Debug";
25

    
26
        /// <summary>
27
        /// エラーログファイル
28
        /// </summary>
29
        public const string s_ErrorFileName = @".\log\Error.txt";
30

    
31
// ▼自動更新VPS対応▼ 
32
        // FTPユーザ名
33
        public const string s_FTP_USER_NAME = "pmaint";
34
        // FTPパスワード
35
        public const string s_FTP_PASSWORD = "hyou5210";
36
        // FTPつなぎ先パス
37
        public const string s_FTP_SERVER_PATH = "ftp://203.137.94.208:990/HYOU/";
38
        // 本体モジュールフォルダ
39
        public const string s_HONTAI_MODULE = "ProcessManagement";
40
        // UVERSIONキー名
41
        public const string s_UVERSION_KEY = "uversion";
42
        // MVERSIONキー名
43
        public const string s_MVERSION_KEY = "mversion";
44
        // VERSIONセクション名
45
        public const string s_VERSION_SECTION = "genbaKantokuHisyo";
46
        // 起動パラメータ
47
        public const string s_KIDOU_PARAM = "/NOCHECK";
48
// ▲自動更新VPS対応▲
49
        #endregion
50

    
51
        /// <summary>
52
        /// エラー時ログファイル出力
53
        /// </summary>
54
        /// <param name="message"></param>
55
        public static void ErrorLogWrite(string message)
56
        {
57
            try
58
            {
59
                // ディレクトリの確認
60
                int spoint = ClsCommon.s_ErrorFileName.LastIndexOf("\\") + 1;
61
                string path = ClsCommon.s_ErrorFileName.Substring(spoint);
62
                if (Directory.Exists(@path))
63
                    Directory.CreateDirectory(@path);
64
                // ログ書込み
65
                StreamWriter writer = new StreamWriter(@ClsCommon.s_ErrorFileName, true, Encoding.GetEncoding("Shift_JIS"));
66
                writer.WriteLine("Error={0}:{1}", DateTime.Now.ToLongTimeString(), message);
67
                writer.Close();
68
            }
69
            catch
70
            {
71

    
72
            }
73
        }
74
        /// ファイルパスよりmd5のハッシュ値を返す
75
        /// </summary>
76
        /// <param name="FilePath"></param>
77
        /// <returns></returns>
78
        public static string GetFileHashData(string FilePath)
79
        {
80
            try
81
            {
82
                //ファイルを開く
83
                FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
84

    
85
                //MD5CryptoServiceProviderオブジェクトを作成
86
                MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
87

    
88
                //ハッシュ値を計算する
89
                byte[] bs = md5.ComputeHash(fs);
90

    
91
                //リソースを解放する
92
                md5.Clear();
93
                //ファイルを閉じる
94
                fs.Close();
95

    
96
                return BitConverter.ToString(bs).ToLower().Replace("-", "");
97

    
98
            }
99
            catch (Exception ex)
100
            {
101
                ErrorLogWrite(ex.Message.ToString());
102
                return string.Empty;
103
            }
104
        }
105
        /// <summary>
106
        /// ファイルの時間を取得する
107
        /// </summary>
108
        /// <param name="FilePath">ファイルパス</param>
109
        /// <param name="flg">取得日付フラグ</param>
110
        /// <returns></returns>
111
        public static DateTime GetFileTimeStamp(string FilePath, char flg)
112
        {
113
            try
114
            {
115
                DateTime dtDateTime = DateTime.MinValue;
116

    
117
                if (flg == 'C')
118
                {
119
                    // 作成日時を取得する
120
                    dtDateTime = File.GetCreationTime(@FilePath);
121
                }
122
                else if (flg == 'U')
123
                {
124
                    // 更新日時を取得する
125
                    dtDateTime = File.GetLastWriteTime(@FilePath);
126
                }
127
                else if (flg == 'A')
128
                {
129
                    // アクセス日時を取得する
130
                    dtDateTime = File.GetLastAccessTime(@FilePath);
131
                }
132

    
133
                return dtDateTime;
134
            }
135
            catch (Exception ex)
136
            {
137
                ErrorLogWrite(ex.Message.ToString());
138
                return DateTime.Now;
139
            }
140
        }
141
    }
142
}