Пример #1
0
        private void trvDir_BeforeExpand_1(object sender, TreeViewCancelEventArgs e)
        {
            File_Info dInfo = new File_Info();//path에 대한 directory정보 읽어오기

            dInfo.SetPath(e.Node.FullPath);
            dInfo.Type = (int)PacketType.Expand;
            Packet.Serialize(dInfo).CopyTo(this.sendBuffer, 0);
            Send();

            try
            {
                m_Stream.Read(readBuffer, 0, 1024 * 4);
            }
            catch
            {
                MessageBox.Show("디렉토리 읽기 에러");
                return;
            }
            File_Info fInfo = (File_Info)Packet.Desserialize(readBuffer); //Desserialize

            DirectoryInfo[] diArray = fInfo.diArray;                      //하위디렉토리
            FileInfo[]      fiArray = fInfo.fiArray;

            TreeNode node;

            try
            {
                e.Node.Nodes.Clear();

                foreach (DirectoryInfo dirs in diArray)
                {
                    //루트 디렉토리 바로 및 디렉토리를 보여줌.
                    node = e.Node.Nodes.Add(dirs.Name); //하위 디렉토리 정보들을 노드에 추가한다.
                    setPlus(node);                      //하위 디렉토리 정보 밑에 세부 폴더가 있다면 setPlus 함수를 실행한다.
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #2
0
        void ViewRight(string path)
        {
            File_Info dInfo = new File_Info();

            dInfo.SetPath(path);
            dInfo.Type = (int)PacketType.FILE_INFO;
            Packet.Serialize(dInfo).CopyTo(this.sendBuffer, 0);
            Send();


            try
            {
                m_Stream.Read(readBuffer, 0, 1024 * 4);
            }
            catch
            {
                MessageBox.Show("디렉토리 읽기 에러");
                return;
            }
            File_Info fInfo = (File_Info)Packet.Desserialize(readBuffer);//Desserialize

            console.Text = fInfo.GetPath() + "\r\n" + path;

            //console.Text = fInfo.di.FullName+"\r\n"+path;
            //DirectoryInfo di = fInfo.di;//디렉토리 정보
            //DirectoryInfo[] diArray = fInfo.diArray;//하위디렉토리
            //FileInfo[] fiArray = fInfo.fiArray;
            ListViewItem item;

            try
            {
                lvwFiles.Items.Clear();

                foreach (DirectoryInfo di in fInfo.diArray)
                {
                    item = lvwFiles.Items.Add(di.Name);
                    item.SubItems.Add("");
                    item.SubItems.Add(di.LastWriteTime.ToString());
                    item.ImageIndex = (int)TREE_IMAGE.FOLDER;
                    item.Tag        = "D";
                }

                foreach (FileInfo fi in fInfo.fiArray)
                {
                    item = lvwFiles.Items.Add(fi.Name);
                    item.SubItems.Add(fi.Length.ToString());
                    item.SubItems.Add(fi.LastWriteTime.ToString());

                    if (fi.Extension == ".avi" || fi.Extension == ".mp4")
                    {
                        item.ImageIndex = (int)TREE_IMAGE.VEDIO;
                    }
                    else if (fi.Extension == ".jpg" || fi.Extension == ".png")
                    {
                        item.ImageIndex = (int)TREE_IMAGE.IMAGE;
                    }
                    else if (fi.Extension == ".mp3" || fi.Extension == ".wav")
                    {
                        item.ImageIndex = (int)TREE_IMAGE.MUSIC;
                    }
                    else if (fi.Extension == ".txt")
                    {
                        item.ImageIndex = (int)TREE_IMAGE.TEXT;
                    }
                    else
                    {
                        item.ImageIndex = (int)TREE_IMAGE.OTHER;
                    }

                    item.Tag = "F";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }