/// <summary> /// Старт приложения. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_Load(object sender, EventArgs e) { DriveTreeInit(); //Получаем параметры, передаваймые приложению string[] args = Environment.GetCommandLineArgs(); //Если приложению передаются какие либо параметры... if (args.Length > 2) { if (args[2] == "-unpack")//Если второй параметр "-unpack" { DialogResult rez = MessageBox.Show("Распаковать архив?", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (rez == DialogResult.Yes) //Если пользователь потверждаем распаковку. { try { //Распаковка. Arhivate.UnPack(args[1], Arhivate.IsExitFile(args[1])); MessageBox.Show("Распаковка завершена", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch { MessageBox.Show("Ошибка распаковки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } this.Close(); } else if (args[2] == "-pack") { DialogResult rez = MessageBox.Show("Упаковать файл?", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (rez == DialogResult.Yes) //Если пользователь потверждаем распаковку. { try { string s = Path.GetDirectoryName(args[1]) + "\\" + Path.GetFileNameWithoutExtension(args[1]) + ".upi"; //Распаковка. Arhivate.Pack(args[1], s); MessageBox.Show("Упаковка завершена", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch { MessageBox.Show("Ошибка распаковки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } this.Close(); } } }
/// <summary> /// Разархивацяи. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void fUnPack_Click(object sender, EventArgs e) { string fSourse; string fUnp = ""; if (listView1.SelectedItems.Count == 0) { MessageBox.Show("Вы не выбрали файл для распаковки.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } fSourse = fullPath + "\\" + listView1.SelectedItems[0].Text; //Получаем имя исходного файла. try { fUnp = Arhivate.IsExitFile(fSourse); } catch { MessageBox.Show("Не удалось распаковать файл", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } fUnp = fullPath + "\\" + Path.GetFileName(fUnp); //Если файл существует. if (File.Exists(fUnp)) { var res = MessageBox.Show("Перезаписать существующий файл", "Внимание", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (res == DialogResult.OK) { File.Delete(fUnp); listView1.Items.Remove(listView1.FindItemWithText(Path.GetFileName(fUnp))); } else { return; } } //Извлечение файла. try { Arhivate.UnPack(fSourse, fUnp); } catch { MessageBox.Show("Не удалось распаковать файл", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Добавление файла FileInfo fl = new FileInfo(fUnp); ListViewItem lvi = new ListViewItem(fl.Name); lvi.SubItems.Add(GetSize(fl.Length)); lvi.SubItems.Add(GetDate(fl.LastWriteTime)); listView1.Items.Insert(listView1.SelectedIndices[0], lvi); MessageBox.Show("Файл распокован", "Распаковка", MessageBoxButtons.OK, MessageBoxIcon.Information); }