示例#1
0
        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();
            }
        }
示例#2
0
        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;
                }
                }
            }
        }