void bt_Click(object sender, MouseButtonEventArgs e) //폴더 클릭 이벤트 { FloderIcon folder = sender as FloderIcon; if (e.ClickCount == 2) //더블 클릭 시 { ClickTreeView(folder.Tag.ToString()); //폴더랑 파일 보여주는 메서드 savePath.Add(folder.Tag.ToString()); //폴더 돌아가며 볼때마다 주소를 리스트에 저장 folderCount++; //수를 센다 SelectedPath = folder.Tag.ToString(); //주소 저장 pathTextBox.Text = folder.Tag.ToString(); //텍스트 박스에 주소 뜨게 한다. btn_back.IsEnabled = true; } }
void ClickTreeView(string path) //트리뷰 선택시 혹은 폴더 선택시 하위 폴더들 wrapPanel들 띄우게 { RightWrap.Children.Clear(); DirectoryInfo directoryInfo = new DirectoryInfo(path); string name; foreach (var item in directoryInfo.GetDirectories()) { if ((item.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden) //숨겨진 폴더들은 뜨지 않게 한다 { name = item.ToString(); FloderIcon floder = new FloderIcon(name); if (path.Equals("C:\\") || path.Equals("D:\\")) { floder.Tag = path + name; } else { floder.Tag = path + "\\" + name; } RightWrap.Children.Add(floder); floder.MouseLeftButtonDown += new MouseButtonEventHandler(bt_Click); //폴더마다 클릭 이벤트 심는다 } } foreach (var fileItem in directoryInfo.GetFiles()) { if ((fileItem.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden) //숨겨진 파일들 뜨지 않는다. { name = fileItem.ToString(); if (path.Equals("C:\\") || path.Equals("D:\\")) { FileIcon fileIcon = new FileIcon(path + name); fileIcon.Tag = path + name; RightWrap.Children.Add(fileIcon); fileIcon.MouseLeftButtonDown += new MouseButtonEventHandler(fIcon_MouseLeftButtonDown); //파일마다 클릭이벤트 심기 } else { FileIcon fileIcon = new FileIcon(path + "\\" + name); fileIcon.Tag = path + "\\" + name; RightWrap.Children.Add(fileIcon); fileIcon.MouseLeftButtonDown += new MouseButtonEventHandler(fIcon_MouseLeftButtonDown); } } } pathTextBox.Text = path; //주소 텍스트 박스에 주소 옮길 때마다 띄게 }