Example #1
0
        // упаковка содержимого папки
        private void buttonChooseFolder_Click(object sender, EventArgs e)
        {
            try
            {
                FileStream          FileStream;
                FolderBrowserDialog FolderBr  = new FolderBrowserDialog(); //диалоговое окно выбора папки
                OpenFileDialog      openFiles = new OpenFileDialog();      // диалоговое окно выбора файлов

                if (FolderBr.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        SaveFileDialog saveFile = new SaveFileDialog();
                        saveFile.Title    = "Выберите директорию для сохранения";
                        saveFile.FileName = "Container (" + DateTime.Now.ToShortDateString() + ")";
                        saveFile.Filter   = "Файл dat|*.dat";

                        if (saveFile.ShowDialog() == DialogResult.OK)
                        {
                            FilesData FileData = new FilesData(Directory.GetFiles(FolderBr.SelectedPath)); // передача файлов содержащихся в папке в класс файлов для обработки

                            using (FileStream = new FileStream(saveFile.FileName, FileMode.Create, FileAccess.Write))
                            {
                                BinaryFormatter bf = new BinaryFormatter();
                                bf.Serialize(FileStream, FileData);
                                FileStream.Close();
                            }
                            MessageBox.Show("Данные успешно сохранены", "Инфо", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        }
                    }
                    catch (Exception ex) { MessageBox.Show("Ошибка при попытки сохранения контейнера, попробуйте еще раз! " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                }
            }
            catch (Exception ex) { MessageBox.Show("Ошибка во время выбора файлов для упаковки, попробуйте еще раз! " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }
Example #2
0
        // дополняем конейнер файлами содержащихся в папке
        private void buttonAddFolder_Click(object sender, EventArgs e)
        {
            try
            {
                FileStream     FileStream;
                OpenFileDialog openFile = new OpenFileDialog();
                openFile.Title  = "Выберите контейнер, который необходимо дополнить";
                openFile.Filter = "Файл dat|*.dat";

                if (openFile.ShowDialog() == DialogResult.OK)
                {
                    FolderBrowserDialog FolderBr = new FolderBrowserDialog();
                    FolderBr.ShowDialog();

                    using (FileStream = new FileStream(openFile.FileName, FileMode.Append, FileAccess.Write))
                    {
                        FilesData       FileData = new FilesData(Directory.GetFiles(FolderBr.SelectedPath));
                        BinaryFormatter bf       = new BinaryFormatter();
                        bf.Serialize(FileStream, FileData);
                        FileStream.Close();
                    }
                    MessageBox.Show("Данные успешно добавлены", "Инфо", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
            catch (Exception ex) { MessageBox.Show("Ошибка во время упаковки, попробуйте еще раз! " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }
Example #3
0
        // упаковка файлов в контейнер
        private void buttonChooseFiles_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = null;
            try
            {
                BinaryFormatter bfw = new BinaryFormatter();                            // сериализует и десериализует объекты в двоичном формате
                BinaryFormatter bf  = new BinaryFormatter();
                FileStream      FileStream;                                             // класс для операций с файлами в файловой сис.
                OpenFileDialog  openFiles = new OpenFileDialog();                       // диалоговое окно выбора файлов
                openFiles.Title       = "Выберите файлы, которые необходимо упаковать"; // заголовок окна
                openFiles.Multiselect = true;                                           // возможность выбора нескольких файлов

                if (openFiles.ShowDialog() == DialogResult.OK)                          // проверка выбора файла
                {
                    try
                    {
                        SaveFileDialog saveFile = new SaveFileDialog();                             // диалоговое окно сохранения файла
                        saveFile.Title    = "Выберите директорию для сохранения";
                        saveFile.FileName = "Container (" + DateTime.Now.ToShortDateString() + ")"; // имя по умолчанию с текущей датой
                        saveFile.Filter   = "Файл dat|*.dat";                                       // фильтр файлов для отображения

                        if (saveFile.ShowDialog() == DialogResult.OK)
                        {
                            FilesData FileData = new FilesData(openFiles.FileNames, openFiles.SafeFileNames); // передача выбранных файлов в класс файлов для обработки
                            // Сериализуем - сохраняем данные в файл
                            using (FileStream = new FileStream(saveFile.FileName, FileMode.Create, FileAccess.Write))
                            {
                                bf.Serialize(FileStream, FileData);
                                FileStream.Close(); // закрываем поток
                            }
                            try
                            {
                                FilesData desObj = new FilesData();
                                // просмотр контейнера (десериализация)
                                using (FileStream = new FileStream(saveFile.FileName, FileMode.Open))
                                {
                                    desObj = (FilesData)bfw.Deserialize(FileStream);
                                }
                                FileStream.Close();
                                // запоняем RTB именями файлов содержащихся в контенере
                                foreach (FilesData.fi y in desObj.dataFi)
                                {
                                    richTextBox1.Text += y.name.ToString() + "\r\n";
                                }
                            }
                            catch (Exception ex) { MessageBox.Show("Ошибка при попытки просмотре контейнера, попробуйте еще раз! " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                            // выводим сообщение об успехе
                            MessageBox.Show("Данные успешно сохранены", "Инфо", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        }
                    }
                    // обработка исключений
                    catch (Exception ex) { MessageBox.Show("Ошибка при попытки сохранения контейнера, попробуйте еще раз! " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                }
            }
            catch (Exception ex) { MessageBox.Show("Ошибка во время выбора файлов для упаковки, попробуйте еще раз! " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }
Example #4
0
        // дополняем конейнер файлами
        private void buttonAddFile_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = null;
            try
            {
                BinaryFormatter bf = new BinaryFormatter();
                FileStream      FileStream;
                OpenFileDialog  openFile = new OpenFileDialog();
                openFile.Title  = "Выберите контейнер, который необходимо дополнить";
                openFile.Filter = "Файл dat|*.dat";

                if (openFile.ShowDialog() == DialogResult.OK)
                {
                    OpenFileDialog openFiles = new OpenFileDialog();
                    openFiles.Title       = "Выберите файлы, которые необходимо добавить";
                    openFiles.Multiselect = true;
                    openFiles.ShowDialog();
                    // дописываем выбранные  файлы в конец контейнера
                    using (FileStream = new FileStream(openFile.FileName, FileMode.Append, FileAccess.Write))
                    {
                        FilesData FileData = new FilesData(openFiles.FileNames, openFiles.SafeFileNames);
                        bf.Serialize(FileStream, FileData);
                        FileStream.Close();
                    }
                    try
                    {
                        BinaryFormatter bfw    = new BinaryFormatter();
                        FilesData       desObj = new FilesData();
                        // просмотр контейнера (десериализация)
                        using (FileStream = new FileStream(openFile.FileName, FileMode.Open))
                        {
                            desObj = (FilesData)bfw.Deserialize(FileStream);
                        }
                        FileStream.Close();
                        // запоняем RTB именями файлов содержащихся в контенере
                        foreach (FilesData.fi y in desObj.dataFi)
                        {
                            richTextBox1.Text += y.name.ToString() + "\r\n";
                        }
                    }
                    catch (Exception ex) { MessageBox.Show("Ошибка при попытки просмотре контейнера, попробуйте еще раз! " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                    MessageBox.Show("Данные успешно добавлены", "Инфо", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
            catch (Exception ex) { MessageBox.Show("Ошибка во время упаковки, попробуйте еще раз! " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }