Ejemplo n.º 1
0
        private void SaveFile(FileExchangeCommand cmd)
        {
            string fileName = (string)cmd.GetData()[0];
            int    len      = (int)cmd.GetData()[1];

            byte[]         content         = (byte[])cmd.GetData()[2];
            char[]         splitter        = new char[] { '\\' };
            var            dirs            = fileName.Split(splitter, StringSplitOptions.RemoveEmptyEntries);
            var            dirsLen         = dirs.Count();
            string         simpleFileName  = dirs[dirsLen - 1];
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.Title            = $"Сохранить файл от сервера.";
            saveFileDialog1.FileName         = simpleFileName;
            saveFileDialog1.Filter           = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            saveFileDialog1.RestoreDirectory = true;
            this.Invoke(new Action(() =>
            {
                var newFileName = string.Empty;
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    newFileName = Path.GetFullPath(saveFileDialog1.FileName);
                    using (FileStream fs = new FileStream(newFileName, FileMode.Create))
                    {
                        fs.Write(content, 0, len);
                    }
                }
                txtChat.Text += $"{DateTime.Now.ToString()} Диспетчер прислал новый файл.\n Сохранен в {newFileName}\n\n";
            }));
        }
Ejemplo n.º 2
0
        private void SaveFile(Connection con, FileExchangeCommand cmd)
        {
            string fileName = (string)cmd.GetData()[0];
            int    len      = (int)cmd.GetData()[1];

            byte[] content = (byte[])cmd.GetData()[2];

            char[] splitter       = new char[] { '\\' };
            var    dirs           = fileName.Split(splitter, StringSplitOptions.RemoveEmptyEntries);
            var    dirsLen        = dirs.Count();
            string simpleFileName = dirs[dirsLen - 1];

            var            name            = string.IsNullOrEmpty(con.User.LabName) ? "" : con.User.LabName;
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.Title = $"Сохранить файл от клиента {con.ClientIP}  {name}  {simpleFileName}";

            saveFileDialog1.Filter           = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            saveFileDialog1.RestoreDirectory = true;
            saveFileDialog1.FileName         = simpleFileName;

            var tempTxts = con.TabPage.Controls.OfType <RichTextBox>().ToList();
            var tmpTxt   = tempTxts.Where(t => t.Name == $"txtChat{con.ConnectionId}").FirstOrDefault();
            var fullname = string.Empty;

            this.Invoke(new Action(() =>
            {
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    fullname = Path.GetFullPath(saveFileDialog1.FileName);

                    using (FileStream fs = new FileStream(fullname, FileMode.Create))
                    {
                        fs.Write(content, 0, len);
                    }
                }

                if (tempTxts.Count() > 0)
                {
                    tmpTxt.Text += $"{DateTime.Now.ToString()} Клиент {con.ClientIP} {con.User.LabName} {con.User.UserName} прислал новый файл.\n\n Сохранен в {fullname}\n\n";
                }
            }));
        }