Exemplo n.º 1
0
        /// <summary>
        /// 현재 로컬 드라이브를 불러오는 함수
        /// </summary>
        private void localDriveTree()
        {
            //treeView1.BeginUpdate(); //성능향상을 위해 트리뷰를 한번만 그려주기 처리
            treeView1.MouseDown += new MouseEventHandler(treeView1_MouseDown); //트리뷰에서 마우스를 눌렀을 때 핸들러
                                                                               //현재 로컬의 논리 드라이브를 얻어와서 트리뷰에 출력한다.
            string[] drives = Directory.GetLogicalDrives();

            foreach (string str in drives)
            {
                //시스템아이콘 추가
                myImageList2.Images.Add(SystemIcon.GetIcon(str, true));
                //treeview에 불러온 논리드라이브를 붙인다.
                TreeNode rootnode = treeView1.Nodes.Add(str);
                treeque.Enqueue(rootnode);
                //드라이브 이미지 설정
                rootnode.ImageIndex         = imgcount2;
                rootnode.SelectedImageIndex = imgcount2;
                imgcount2++;
            }

            while (treeque.Count > 0)
            {
                //각각 불러온 논리 드라이브 하위 폴더와 파일을 찾기 위해 nextnodeShow() 함수를 호출한다.
                nextnodeShow((TreeNode)treeque.Dequeue(), true);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 폴더와 파일 검색 후 ListView에 추가 시켜주는 함수
        /// </summary>
        /// <param name="str"></param>
        private void getFolderAndFile(string str)
        {
            DirectoryInfo dinfo = new DirectoryInfo(@str);

            savefullpath = str; // 경로 설정
                                //MessageBox.Show(str);
            if (dinfo.Exists)   //폴더일 경우
            {
                //listview 항목들 초기화
                setListview();

                //이전경로 표시
                ListViewItem item0 = new ListViewItem("..", foldericoncount);
                item0.SubItems.Add("");
                item0.SubItems.Add("");
                listView1.Items.Add(item0);

                //인자로 넘어온 경로에서 하위 경로에 해당하는 디렉토리 검색
                DirectoryInfo[] directories = dinfo.GetDirectories();
                //리스트뷰에 검색된 디렉토리를 추가
                foreach (DirectoryInfo directory in directories)
                {
                    myImageList.Images.Add(SystemIcon.GetIcon(directory.FullName, true));//시스템아이콘 추가
                    ListViewItem item1 = new ListViewItem(directory.Name.ToString(), imgcount);

                    imgcount++;
                    item1.SubItems.Add("");
                    item1.SubItems.Add(directory.CreationTime.ToShortDateString());
                    listView1.Items.Add(item1);
                }


                //인자로 넘어온 경로에서 하위 경로에 해당하는 파일 검색
                FileInfo[] files = dinfo.GetFiles();
                //리스트뷰에 검색된 파일을 추가
                foreach (FileInfo fil in files)
                {
                    myImageList.Images.Add(SystemIcon.GetIcon(fil.FullName, true));
                    ListViewItem item2 = new ListViewItem(fil.Name.ToString(), imgcount);
                    imgcount++;
                    long fil_len = fil.Length / 1024;
                    item2.SubItems.Add(fil_len.ToString() + "KB");
                    item2.SubItems.Add(fil.CreationTime.ToShortDateString());
                    listView1.Items.Add(item2);
                }
            }
            else//파일일 경우
            {
                //파일실행
                file_execute(savefullpath);
                //경로는 이전의 폴더 경로로 다시 설정
                int lastposition = savefullpath.ToString().LastIndexOf("\\");
                savefullpath = savefullpath.Substring(0, lastposition);
            }
            //listView1.Focus();
        }
Exemplo n.º 3
0
        /// <summary>
        /// 폴더와 파일을 검색하여 treeview에 삽입시켜 주는 함수.
        /// </summary>
        /// <param name="node"></param>
        /// <param name="speedup"></param>
        private void nextnodeShow(TreeNode node, bool speedup)
        {
            try
            {
                string        fullname = node.FullPath;
                DirectoryInfo dinfo    = new DirectoryInfo(@fullname);
                if (dinfo.Exists)//폴더가 존재할 때까지
                {
                    //인자로 넘어온 경로에서 하위 경로에 해당하는 디렉토리 검색
                    DirectoryInfo[] directories = dinfo.GetDirectories();

                    int speedupflag = 0;
                    foreach (DirectoryInfo directory in directories)
                    {
                        TreeNode node1 = node.Nodes.Add(directory.ToString());
                        //MessageBox.Show(node1.FullPath);
                        myImageList2.Images.Add(SystemIcon.GetIcon(directory.FullName.ToString(), true));
                        node1.ImageIndex         = imgcount2;
                        node1.SelectedImageIndex = imgcount2;
                        imgcount2++;
                        speedupflag++;
                        if (speedup)
                        {
                            if (speedupflag > 0)
                            {
                                break;
                            }
                        }
                        nextnodeShow(node1, true);
                    }

                    //인자로 넘어온 경로에서 하위 경로에 해당하는 파일검색

                    /*
                     *                  FileInfo [] files = dinfo.GetFiles() ;
                     *                  foreach(FileInfo fil in files)
                     *                  {
                     *                          myImageList2.Images.Add(SystemIcon.GetIcon(fil.FullName.ToString(),true));
                     *                          node.Nodes.Add(fil.ToString());
                     *                          node.ImageIndex=imgcount2;
                     *                          node.SelectedImageIndex=imgcount2;
                     *                          imgcount2++;
                     *                  }
                     */
                }
            }
            catch
            {
            }
        }