private void ButLoad_Click(object sender, EventArgs e) { object[] loadVehicle; bool IsDecompressed = false; if (OpenFD.ShowDialog() == DialogResult.Cancel) { return; } string filePath = OpenFD.FileName; try { if (GetSer(filePath) == null) { if (DecompressFile(ref filePath) == false) { MessageBox.Show("Не загружен файл для разархивации."); return; } else { IsDecompressed = true; } } ISer ser = GetSer(filePath); if (ser == null) { MessageBox.Show("Десериализация не удалась!"); return; } loadVehicle = ser.Deserialize(filePath); foreach (Vehicle vehicle in loadVehicle) { Vehicles.Add(vehicle); } RefreshVehicleList(); if (IsDecompressed) { File.Delete(filePath); IsDecompressed = false; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void button7_Click(object sender, EventArgs e) { if (comboBox3.SelectedIndex != -1) { ISer meth = (ISer)Activator.CreateInstance(Type.GetType("Serial." + comboBox3.Text)); if (saveFileDialog1.ShowDialog() == DialogResult.Cancel) { return; } string filename = saveFileDialog1.FileName; meth.Serialize(allObj, filename); pm.Plugins[comboBox4.SelectedIndex].Compress(filename); } }
private void button8_Click(object sender, EventArgs e) { if (comboBox3.SelectedIndex != -1) { allObj.Clear(); ISer meth = (ISer)Activator.CreateInstance(Type.GetType("Serial." + comboBox3.Text)); if (openFileDialog1.ShowDialog() == DialogResult.Cancel) { return; } string filename = openFileDialog1.FileName; Regex regex = new Regex(@"(\.[\w]+){0,1}$"); MatchCollection matches = regex.Matches(filename); string exten = matches[0].Groups[0].Value; if (matches.Count != 1) { bool flag = false; foreach (var plugin in pm.Plugins) { if (exten == plugin.Extension) { filename = plugin.Decompress(filename); flag = true; } } if (flag) { allObj = meth.Deserialize(filename); comboBox2.Items.Clear(); int c = 0; foreach (Object obj in allObj) { comboBox2.Items.Add(obj.ToString() + ++c); } File.Delete(filename); } else { MessageBox.Show("Плагин не загружен"); } } else { MessageBox.Show("Не указано расширение файла"); } } }
private void ButSave_Click(object sender, EventArgs e) { if (lvVehicles.SelectedItems.Count == 0) { return; } object[] vehicle = new object[lvVehicles.SelectedItems.Count]; ListView.SelectedIndexCollection indexs = lvVehicles.SelectedIndices; int i = 0; foreach (int index in indexs) { vehicle[i] = Vehicles[index]; i++; } ISer ser = (ISer)Activator.CreateInstance(Sers[ComboBSers.SelectedIndex]); SaveFD.Filter = ser.FileExtension; if (SaveFD.ShowDialog() == DialogResult.Cancel) { return; } string filePath = SaveFD.FileName; ser.Serialize(vehicle, filePath); DialogResult choice = MessageBox.Show("Заархивировать файл?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (choice == DialogResult.Yes) { if (ComboBArchiving.SelectedIndex == -1) { MessageBox.Show("Не загружены файлы для архивации."); return; } Assembly assembly = Assembly.LoadFile(Plugins[ComboBArchiving.SelectedIndex]); object obj = assembly.CreateInstance("Compressions"); Type type = obj.GetType(); MethodInfo method = type.GetMethod("Compress"); method.Invoke(obj, new object[] { filePath }); File.Delete(filePath); } }
private ISer GetSer(string filepath) { ISer ser = null; bool flag = false; foreach (Type serType in Sers) { ser = (ISer)Activator.CreateInstance(serType); if ((ser.FileExtension).IndexOf(Path.GetExtension(filepath)) != -1) { flag = true; break; } } if (flag) { return(ser); } else { return(null); } }