public void OpenEncry(ListViewItem item) { TreeNode EncryNode = trvDir.SelectedNode; if (item.Tag.ToString() == "D") { MessageBox.Show("폴더는 암호화를 지원하지 않습니다.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { Doubleclick db = new Doubleclick(); db.Type = (int)PacketType.암호화; db.path = EncryNode.FullPath + "\\" + item.Text; Packet.Serialize(db).CopyTo(this.sendBuffer, 0); this.Send(); } }
public void RUN() { Initialize Init = new Initialize(); Init.Type = (int)PacketType.초기화; Packet.Serialize(Init).CopyTo(this.sendBuffer, 0); this.Send(); int nRead = 0; while (this.m_bConnect) { try { nRead = 0; nRead = this.m_networkstream.Read(readBuffer, 0, 1024 * 4); } catch { this.m_bConnect = false; this.m_networkstream = null; } Packet packet = (Packet)Packet.Desserialize(this.readBuffer); switch ((int)packet.Type) { case (int)PacketType.초기화: { this.Invoke(new MethodInvoker(delegate() { TreeNode root; root = trvDir.Nodes.Add(packet.path); root.ImageIndex = 0; if (trvDir.SelectedNode == null) { trvDir.SelectedNode = root; } root.Nodes.Add(""); })); break; } case (int)PacketType.확장: { this.m_loginClass = (Login)Packet.Desserialize(this.readBuffer); this.Invoke(new MethodInvoker(delegate() { TreeNode root; node.Nodes.Clear(); DirectoryInfo[] di = packet.dir.GetDirectories(); foreach (DirectoryInfo dirs in di) { root = node.Nodes.Add(dirs.Name); setPlus(root); } })); break; } case (int)PacketType.택: { this.m_SelectClass = (Select)Packet.Desserialize(this.readBuffer); this.Invoke(new MethodInvoker(delegate() { lvwFiles.Items.Clear(); DirectoryInfo[] diarray = packet.dir.GetDirectories(); ListViewItem item; FileInfo[] fiarray; foreach (DirectoryInfo tdis in diarray) { item = lvwFiles.Items.Add(tdis.Name); item.SubItems.Add(""); item.SubItems.Add(tdis.LastWriteTime.ToString()); item.ImageIndex = 0; item.Tag = "D"; } fiarray = packet.dir.GetFiles(); foreach (FileInfo fis in fiarray) { string extens = Path.GetExtension(fis.FullName); item = lvwFiles.Items.Add(fis.Name); item.SubItems.Add(fis.Length.ToString()); item.SubItems.Add(fis.LastWriteTime.ToString()); item.Tag = "F"; if (extens == ".avi" || extens == ".mp4") { item.ImageIndex = 1; } else if (extens == ".jpg" || extens == ".png") { item.ImageIndex = 2; } else if (extens == ".mp3" || extens == ".wav") { item.ImageIndex = 3; } else if (extens == ".txt") { item.ImageIndex = 4; } else { item.ImageIndex = 5; } } })); break; } case (int)PacketType.상세정보: { this.m_DetailClass = (Detail)Packet.Desserialize(this.readBuffer); this.Invoke(new MethodInvoker(delegate() { var info = packet.fi; Form2 dlg = new Form2(); string extens = info.FullName; int length = extens.Length - 4; extens = extens.Substring(length, 4); dlg.filename = info.Name; dlg.extens = extens; dlg.filepath = info.DirectoryName; dlg.filesize = info.Length + " 바이트"; dlg.madedate = info.CreationTime; dlg.fixdate = info.LastWriteTime; dlg.acdate = info.LastAccessTime; if (extens == ".avi" || extens == ".mp4") { dlg.imageindex = 1; } else if (extens == ".jpg" || extens == ".png") { dlg.imageindex = 2; } else if (extens == ".mp3" || extens == ".wav") { dlg.imageindex = 3; } else if (extens == ".txt") { dlg.imageindex = 4; } else { dlg.imageindex = 5; } dlg.Show(); })); break; } case (int)PacketType.다운로드: { this.Invoke(new MethodInvoker(delegate() { this.m_DownloadClass = (Download)Packet.Desserialize(this.readBuffer); FileInfo file = m_DownloadClass.fi; file.CopyTo(txt_path.Text + "\\" + downfilename, true); })); break; } case (int)PacketType.암호화: { this.Invoke(new MethodInvoker(delegate() { this.m_DoubleClass = (Doubleclick)Packet.Desserialize(this.readBuffer); //ListViewItem item = lvwFiles.SelectedItems[0]; string Extension = Path.GetExtension(packet.path); string inputfile = packet.path; string path = Path.GetDirectoryName(packet.path); if (Extension == ".hwp") { string encry = "Encrypted.hwp"; EncryptFile(inputfile, encry, path); MessageBox.Show("암호화 완료"); } else if (Extension == ".jpg") { string encry = "Encrypted.jpg"; EncryptFile(inputfile, encry, path); MessageBox.Show("암호화 완료"); } else if (Extension == ".pdf") { string encry = "Encrypted.pdf"; EncryptFile(inputfile, encry, path); MessageBox.Show("암호화 완료"); } })); break; } } } }