示例#1
0
    static void Main(string[] args)
    {
        tProgramData programData = new tProgramData();
        cParam       param       = new cParam();

        ParseParam(args, param, programData);

        // Проверяем путь
        if (!Directory.Exists(programData.pathBackup))
        {
            sendMail(programData, string.Format(strErrorNotFoundPath, programData.pathBackup));
        }
        else
        {
            List <tDataFile> fileList = new List <tDataFile>();

            string[] files = Directory.GetFiles(programData.pathBackup).OrderByDescending(x => new FileInfo(x).CreationTime).ToArray();
            foreach (string file in files)
            {
                fileList.Add(new tDataFile(file, Directory.GetCreationTime(file)));
            }

            int c = fileList.Count();
            if (c == 0)
            {
                // Нет файлов в контролируемом каталоге
                sendMail(programData, strInfoNotArchiv);
            }
            else
            {
                tDataFile dataFile1 = fileList[0];

                if (dataFile1.dateCreate <= DateTime.Today)
                {
                    // Последний архив меньше сегодняшенго дня
                    sendMail(programData, string.Format(strInfoOldArсhiv, dataFile1.dateCreate));
                }
                else
                {
                    if (c > 1)
                    {
                        tDataFile dataFile2 = fileList[1];
                        long      lenFile1  = new FileInfo(dataFile1.name).Length;
                        long      lenFile2  = new FileInfo(dataFile2.name).Length;
                        if (lenFile1 < lenFile2)
                        {
                            // Размер нового архива меньше чем старого
                            sendMail(programData, string.Format(strInfoSizeNewArchivSmaller, lenFile1, dataFile1.name, lenFile2, dataFile2.name));
                        }
                    }
                }
            }
        }
    }
示例#2
0
    // Загрузка данные из ini файла
    static void loadFromIni(string[] args, cParam param, tProgramData programData)
    {
        IniFiles ini           = new IniFiles("param.ini");
        string   iniSection    = "Основные настройки";
        string   iniSmtpServer = "smtpserver";
        string   iniUsername   = "******";
        string   iniPassword   = "******";
        string   iniMailto     = "mailto";
        string   iniSubject    = "subject";
        string   iniPathbackup = "pathbackup";

        if (args.Count() == 0)
        {
            // Создадим INI файл с настройками
            ini.Write(iniSection, iniSmtpServer, "");
            ini.Write(iniSection, iniUsername, "");
            ini.Write(iniSection, iniPassword, "");
            ini.Write(iniSection, iniMailto, "");
            ini.Write(iniSection, iniSubject, "");
            ini.Write(iniSection, iniPathbackup, "");

            Console.WriteLine("17/08/2018 [email protected]");
            Console.WriteLine("Программа контроля создания архивов.");
            Console.WriteLine("При запуске с параметрами контролирует каталог из параметра -pb");
            Console.WriteLine("Если в каталоге сегодня не было свежего файла, значит архив не сделан");
            Console.WriteLine("отправляет письмо на почту. Также если размер архива меньше чем прошлый");
            Console.WriteLine("то также отправляет письмо на почту.");
            Console.WriteLine("Парамтеры: ");
            foreach (cParamData item in param)
            {
                Console.WriteLine("\t{0}  {1}", item.command, item.descript);
            }
        }

        // Если в параметрах указано что брать данные из файла настроек, то
        // попробует получить из него данные

        if (param.Get("-f").data != "")
        {
            // читаем данные из файла
            programData.smtpServer = ini.Read(iniSection, iniSmtpServer);
            programData.userName   = ini.Read(iniSection, iniUsername);
            programData.password   = ini.Read(iniSection, iniPassword);
            programData.mailto     = ini.Read(iniSection, iniMailto);
            programData.subject    = ini.Read(iniSection, iniSubject);
            programData.pathBackup = ini.Read(iniSection, iniPathbackup);
        }
    }
示例#3
0
        // Callback for search / replace actions (null --> Goto)
        public frmFind(int          s32_TotalLines, // only used for Goto
		               cParam         i_Param,      // i_Param.b_Replace = false -> disable Replace button
		               delFindReplace i_Callback)
        {
            InitializeComponent();

            StoreWindowPos     = true; // must be set in Constructor AFTER InitializeComponent() !!
            ms32_TotalLines    = s32_TotalLines;
            mi_Callback        = i_Callback;
            DialogResult       = DialogResult.Cancel;

            string[] s_Lines   = i_Param.s_Find.Replace("\r", "").Split('\n');
            txtInput.  Text    = Functions.Left(s_Lines[0], 50);
            txtReplace.Text    = i_Param.s_Replace;

            checkWholeWord.Checked = i_Param.b_WholeWord;

            // Enable the optional additional checkbox
            if (i_Param.s_CheckExtra1 != null)
            {
                checkExtra1.Text    = i_Param.s_CheckExtra1;
                checkExtra1.Checked = i_Param.b_CheckExtra1;
            }
            else checkExtra1.Visible = false;

            lblReplace.Enabled = i_Param.b_Replace;
            txtReplace.Enabled = i_Param.b_Replace;
            btnReplace.Enabled = i_Param.b_Replace;

            if (mi_Callback == null) // Goto
            {
                this.Text       = " Goto";
                btnExecute.Text = "Goto";
                lblHeading.Text = "Line";
                checkWholeWord.Enabled = false;
            }
            else // Find / Replace
            {
                if (i_Param.b_Replace) this.Text = " Find / Replace";
                else                   this.Text = " Find";

                btnExecute.Text = "Find";
                lblHeading.Text = "Search Text";
            }
        }
示例#4
0
    static void ParseParam(string[] args, cParam param, tProgramData programData)
    {
        param.Add("-f", tParamData.tBoll, "", "Если указан, то настройки берутся из param.ini файла. Файл с пустыми настройками создан.");
        param.Add("-s", tParamData.tString, "smtp.yandex.ru:25", "адрес smtp сервера, например smtp.yandex.ru");
        param.Add("-u", tParamData.tString, "", "почта под который делать отправку писем");
        param.Add("-p", tParamData.tString, "", "пароль");
        param.Add("-t", tParamData.tString, "", "адрес почты на который нужно отправлять письма, например [email protected]");
        param.Add("-su", tParamData.tString, "", "тема письма");
        param.Add("-pb", tParamData.tString, "", "контролируемый каталог с архивами");
        param.Parse(args);

        programData.smtpServer = param.Get("-s").data;
        programData.userName   = param.Get("-u").data;
        programData.password   = param.Get("-p").data;
        programData.mailto     = param.Get("-t").data;
        programData.subject    = param.Get("-su").data;
        programData.pathBackup = param.Get("-pb").data;

        loadFromIni(args, param, programData);
    }
示例#5
0
        /// <summary>
        /// Replace
        /// </summary>
        private void OnButtonReplace(object sender, System.EventArgs e)
        {
            if (txtInput.Text.Length == 0)
            {
                lblStatus.SetTransientText("Find what ?");
                return;
            }

            cParam i_Param = new cParam();
            i_Param.b_Replace     = true;
            i_Param.b_WholeWord   = checkWholeWord.Checked;
            i_Param.b_CheckExtra1 = checkExtra1.Checked;
            i_Param.s_Find        = txtInput.  Text;
            i_Param.s_Replace     = txtReplace.Text;

            lblStatus.SetTransientText(mi_Callback(i_Param));
        }
示例#6
0
        /// <summary>
        /// Find or Goto
        /// </summary>
        private void OnButtonExecute(object sender, System.EventArgs e)
        {
            if (mi_Callback != null) // Find
            {
                if (txtInput.Text.Length == 0)
                {
                    lblStatus.SetTransientText("Find what ?");
                }
                else
                {
                    cParam i_Param = new cParam();
                    i_Param.b_Replace     = false;
                    i_Param.b_WholeWord   = checkWholeWord.Checked;
                    i_Param.b_CheckExtra1 = checkExtra1.Checked;
                    i_Param.s_Find        = txtInput.Text;

                    lblStatus.Text = "Searching....";
                    lblStatus.SetTransientText(mi_Callback(i_Param));
                }
            }
            else // Goto
            {
                try   { ms32_Line = int.Parse(txtInput.Text); }
                catch { ms32_Line = -1; }

                if (ms32_Line <= 0 || ms32_Line > ms32_TotalLines)
                {
                    lblStatus.Text = "Searching....";
                    lblStatus.SetTransientText("Invalid line number!");
                }
                else
                {
                    DialogResult = DialogResult.OK;
                    Close();
                }
            }
        }