Exemple #1
0
        //Кнопка - Спрятать.
        private void buttonProcessHide_Click(object sender, EventArgs e)
        {
            //Если пользователь указал все данные
            if (textBoxMainPath.TextLength > 0 && textBoxHideFiles.TextLength > 0)
            {
                outPath = Path.GetDirectoryName(textBoxMainPath.Text) + "\\" + Path.GetFileNameWithoutExtension(textBoxMainPath.Text) + " (hidder)" + Path.GetExtension(textBoxMainPath.Text);
                //MessageBox.Show(outPath);

                //то инициализируем упаковщик
                Hidder hidder = new Hidder(textBoxMainPath.Text, outPath, textBoxHideFiles.Text);
                if (checkBoxHideWithPassword.Checked)
                {
                    hidder.setPassword(textBoxPasswordToHide.Text);
                }
                //и запускаем его
                hidder.hideFilesAtNewThread(radioButtonHideFolder.Checked);

                //так же запускаем новый (thread)поток, который будет информировать о процессе упаковки
                Thread thrdGetInfo = new Thread(() => threadGetInfoHide(hidder));
                thrdGetInfo.IsBackground = true;
                thrdGetInfo.Start();

                /*if (hidder.hideFiles(radioButtonHideFolder.Checked))
                 * {
                 *  MessageBox.Show("Успешно спрятано в новом файле "+outPath);
                 * } else
                 * {
                 *  MessageBox.Show("Не удалось спрятать!");
                 * }*/
            }
            //MessageBox.Show(((char)65).ToString());
        }
Exemple #2
0
        //Кнопка - распаковать
        private void buttonExtract_Click(object sender, EventArgs e)
        {
            //инициализируем распаковщик
            Hidder hidder = new Hidder(textBoxFile.Text);

            if (checkBoxExtractWithPassword.Checked)
            {
                hidder.setPassword(textBoxPasswordToExtract.Text);
            }
            //Включаем поток распаковки
            hidder.unhideFilesAtNewThread(textBoxPathExtract.Text);
            //Включаем поток вывода информации об распаковки пользователю
            Thread thrdGetInfo = new Thread(() => threadGetInfoExtract(hidder));

            thrdGetInfo.IsBackground = true;
            thrdGetInfo.Start();
            //tabControlMain.Enabled = false;
        }
Exemple #3
0
        //Поток распаковки
        private void threadGetInfoExtract(Hidder hidder)
        {
            extracting = true;
            long time = 0;

            panelExtract.BeginInvoke(
                ((Action)(() => panelExtract.Enabled = false)));
            panelStatusExtract.BeginInvoke(
                ((Action)(() => panelStatusExtract.Enabled = true)));
            labelStatus.BeginInvoke(
                ((Action)(() => labelStatus.Text = "поиск файлов")));
            labelStatus.BeginInvoke(
                ((Action)(() => labelStatus.ForeColor = Color.Black)));
            progressBarExtract.BeginInvoke(
                ((Action)(() => progressBarExtract.Value = 0)));
            System.Threading.Thread.Sleep(1000);
            time++; //time++;
            while (hidder.ExtractingStatus())
            {
                int hided     = hidder.getCountHidedFiles();
                int extracted = hidder.getExtractedFiles();
                labelStatus.BeginInvoke(
                    ((Action)(() => labelStatus.Text = "спрятано - " + hidder.getCountHidedFiles().ToString() + "; извлечено - " + hidder.getExtractedFiles().ToString())));
                progressBarExtract.BeginInvoke(
                    ((Action)(() => progressBarExtract.Value = hidder.getExtractingProgress())));
                System.Threading.Thread.Sleep(1000);
                time++;
            }
            progressBarExtract.BeginInvoke(
                ((Action)(() => progressBarExtract.Value = hidder.getExtractingProgress())));
            string statusMsg;
            Color  msgColor = Color.Red;

            if (hidder.getCountHidedFiles() > 0 || hidder.getCountHidedFolders() > 0)
            {
                StringBuilder hh = new StringBuilder(((int)((time - (time % 3600)) / 3600)).ToString());
                if (hh.Length == 1)
                {
                    hh = new StringBuilder("0" + hh);
                }
                StringBuilder mm = new StringBuilder(((int)(((time % 3600)) / 60)).ToString());
                if (mm.Length == 1)
                {
                    mm = new StringBuilder("0" + mm);
                }
                StringBuilder ss = new StringBuilder(((int)(((time % 3600)) % 60)).ToString());
                if (ss.Length == 1)
                {
                    ss = new StringBuilder("0" + ss);
                }
                string sTime = hh.ToString() + ":" + mm.ToString() + ":" + ss.ToString();
                statusMsg = "извлечено файлов - " + hidder.getExtractedFiles().ToString() + "    за " + sTime;
                if (hidder.getExtractedFiles() == 0 && hidder.getExtractedFolders() > 0)
                {
                    statusMsg = "извлечено папок - " + hidder.getExtractedFolders().ToString() + "    за " + sTime;
                }
                msgColor = Color.DarkGreen;
                if (hidder.getCountHidedFiles() != hidder.getExtractedFiles())
                {
                    msgColor = Color.Red;
                }
                if (hidder.getExtractedFiles() == 0 && hidder.getExtractedFolders() == 0)
                {
                    if (!hidder.CorrectPass())
                    {
                        statusMsg = "неправильный пароль";
                    }
                    else
                    {
                        statusMsg = "не получается распаковать";
                    }
                }
            }
            else
            {
                statusMsg = "ничего не найдено!";
                msgColor  = Color.DarkGreen;
            }
            labelStatus.BeginInvoke(
                ((Action)(() => labelStatus.Text = statusMsg)));
            labelStatus.BeginInvoke(
                ((Action)(() => labelStatus.ForeColor = msgColor)));

            /*panelStatusExtract.BeginInvoke(
             *  ((Action)(() => panelStatusExtract.Enabled = false)));*/
            panelExtract.BeginInvoke(
                ((Action)(() => panelExtract.Enabled = true)));
            extracting = false;

            if (hidder.getExtractedFiles() == 1)
            {
                MessageBox.Show("Файл извлечён в папку " + hidder.getOutDirectory());
            }
            else if (hidder.getExtractedFiles() > 1)
            {
                MessageBox.Show("Файлы извлечены в папку " + hidder.getOutDirectory());
            }
        }
Exemple #4
0
        //Поток информирования об упаковке
        private void threadGetInfoHide(Hidder hidder)
        {
            hiding = true;
            long time = 0;

            //Блокируем объекты
            panelHide.BeginInvoke(
                ((Action)(() => panelHide.Enabled = false)));
            panelStatusHide.BeginInvoke(
                ((Action)(() => panelStatusHide.Enabled = true)));

            /*labelStatusHide.BeginInvoke(
             *       ((Action)(() => labelStatusHide.Text = "поиск файлов")));*/
            //Делаем состояния объектов по умолчания
            labelStatusHide.BeginInvoke(
                ((Action)(() => labelStatusHide.ForeColor = Color.Black)));
            progressBarHide.BeginInvoke(
                ((Action)(() => progressBarHide.Value = 0)));
            System.Threading.Thread.Sleep(100);
            //Пока идёт упаковка
            while (hidder.HidingStatus())
            {
                int toHide = hidder.getCountFilesToHide();
                int hided  = hidder.getHidedSuccess();
                //Обновляем пользователю статус
                labelStatusHide.BeginInvoke(
                    ((Action)(() => labelStatusHide.Text = "спрятано " + hided.ToString() + " из " + toHide.ToString())));
                progressBarHide.BeginInvoke(
                    ((Action)(() => progressBarHide.Value = hidder.getHidingProgress())));
                //Делаем задержку 1 секунду
                System.Threading.Thread.Sleep(1000);
                time++;
                //Debug.WriteLine(extracted.ToString() + "  " + hided.ToString());
                //Debug.WriteLine(progress);
            }
            progressBarHide.BeginInvoke(
                ((Action)(() => progressBarHide.Value = hidder.getHidingProgress())));
            string statusMsg;
            Color  msgColor = Color.Red;
            //Инициализируем пользователю окончательное сообщение
            //if (hidder.getCountFilesToHide() > 0){
            StringBuilder hh = new StringBuilder(((int)((time - (time % 3600)) / 3600)).ToString());

            if (hh.Length == 1)
            {
                hh = new StringBuilder("0" + hh);
            }
            StringBuilder mm = new StringBuilder(((int)(((time % 3600)) / 60)).ToString());

            if (mm.Length == 1)
            {
                mm = new StringBuilder("0" + mm);
            }
            StringBuilder ss = new StringBuilder(((int)(((time % 3600)) % 60)).ToString());

            if (ss.Length == 1)
            {
                ss = new StringBuilder("0" + ss);
            }
            string sTime = hh.ToString() + ":" + mm.ToString() + ":" + ss.ToString();

            statusMsg = "спрятано файлов - " + hidder.getHidedSuccess().ToString() + "    за " + sTime;
            if (hidder.getHidedSuccess() == 0 && hidder.getHidedFoldersSuccess() > 0)
            {
                statusMsg = "спрятано папок - " + hidder.getHidedFoldersSuccess().ToString() + "    за " + sTime;
            }
            msgColor = Color.DarkGreen;
            if (hidder.getCountFilesToHide() != hidder.getHidedSuccess())
            {
                msgColor = Color.Red;
            }
            if (hidder.getHidedSuccess() == 0 && hidder.getHidedFoldersSuccess() == 0)
            {
                statusMsg = "неудалось спрятать!";
            }
            //} else statusMsg = "папка не может быть пустой!";

            //Выводим сообщение и разблокируем объекты
            labelStatusHide.BeginInvoke(
                ((Action)(() => labelStatusHide.Text = statusMsg)));
            labelStatusHide.BeginInvoke(
                ((Action)(() => labelStatusHide.ForeColor = msgColor)));

            /*panelStatusHide.BeginInvoke(
             *  ((Action)(() => panelStatusHide.Enabled = false)));*/
            panelHide.BeginInvoke(
                ((Action)(() => panelHide.Enabled = true)));
            hiding = false;

            if (hidder.getHidedSuccess() != 0)
            {
                MessageBox.Show("исходный файл - " + outPath);
            }
        }