private void SaveButt_Click(object sender, EventArgs e) { TransportSerialize TSerial = SerialList[SerializeBox.SelectedIndex]; IPlugin plugin = (IPlugin)PluginsBox.SelectedItem; saveFileDialog1.Filter = SerialList[SerializeBox.SelectedIndex] + " files(*" + TSerial.FileExtens + plugin.FileExtens + ") | *" + TSerial.FileExtens + plugin.FileExtens + "|All files(*.*)|*.*"; if (saveFileDialog1.ShowDialog() == DialogResult.Cancel) { return; } // получаем выбранный файл string filename = saveFileDialog1.FileName; //FileStream fileStream = new FileStream(filename + ".temp", FileMode.Create);//memoryStream MemoryStream memStream = new MemoryStream(); TSerial.Serialize(memStream, ObjectList); //fileStream.Flush(); //Обработка плагином memStream.Seek(0, SeekOrigin.Begin); FileStream WriteStream = new FileStream(filename, FileMode.Create); plugin.Shifr(memStream, WriteStream); memStream.Close(); WriteStream.Close(); //if (plugin.ToString() != PluginsList[0].ToString()) //{ // File.Delete(filename + ".temp"); //} //else //{ // File.Delete(filename); // File.Move(filename + ".temp", filename); //} MessageBox.Show("Файл сохранен"); }
private void LoadButt_Click(object sender, EventArgs e) { TransportSerialize TSerial = SerialList[SerializeBox.SelectedIndex]; IPlugin plugin = (IPlugin)PluginsBox.SelectedItem; openFileDialog1.Filter = plugin.ToString() + " " + SerializeBox.SelectedItem + " files(*" + TSerial.FileExtens + plugin.FileExtens + ") | *" + TSerial.FileExtens + plugin.FileExtens + "|All files(*.*)|*.*"; if (openFileDialog1.ShowDialog() == DialogResult.Cancel) { return; } string filename = openFileDialog1.FileName; bool NoPlugin = false; if (openFileDialog1.FilterIndex > 1) { NoPlugin = true; TSerial = null; foreach (IPlugin plug in PluginsList) { if (filename.EndsWith(plug.FileExtens) && plug.FileExtens != "") { plugin = plug; NoPlugin = false; foreach (var serial in SerialList) { if (filename.LastIndexOf(serial.FileExtens) > 0) { TSerial = serial; break; } } break; } } if (NoPlugin) { foreach (var serial in SerialList) { if (filename.EndsWith(serial.FileExtens)) { plugin = PluginsList[0]; TSerial = serial; NoPlugin = false; break; } } } } // получаем выбранный файл //string fileExtens = null; if (!NoPlugin && TSerial != null) { FileStream fs = new FileStream(filename, FileMode.OpenOrCreate); MemoryStream memStream = new MemoryStream(); plugin.DeShifr(fs, memStream); memStream.Seek(0, SeekOrigin.Begin); //if (plugin.ToString() != PluginsList[0].ToString()) //{ ObjectList = (List <Object>)TSerial.DeSerialize(memStream); //} //else //{ // ObjectList = (List<Object>)TSerial.DeSerialize(fs); //} fs.Close(); memStream.Close(); File.Delete(filename + ".temp"); ListRedraw(ListView1, ObjectList); MessageBox.Show("Файл загружен"); } else { MessageBox.Show("Неверный формат файла"); } }