示例#1
0
文件: Form1.cs 项目: Cothn/Univer
        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("Файл сохранен");
        }
示例#2
0
文件: Form1.cs 项目: Cothn/Univer
        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("Неверный формат файла");
            }
        }