728x90
반응형
WPF & C# - 배열로 폴더 Path 이동하기 ( array / path / folder / Directory / 디렉토리 / DirectorySeparatorChar / Environment.CurrentDirectory ) |
MainWindow.xaml
1 2 3 4 5 6 7 | <Button x:Name="btn" Content="현재폴더" HorizontalAlignment="Left" Margin="90,42,0,0" VerticalAlignment="Top" Width="75" Click="btn_Click"/> <Button x:Name="btnPre" Content="이전폴더" HorizontalAlignment="Left" Margin="10,42,0,0" VerticalAlignment="Top" Width="75" Click="btnPre_Click"/> <Button x:Name="btnNext" Content="다음폴더" HorizontalAlignment="Left" Margin="170,42,0,0" VerticalAlignment="Top" Width="75" Click="btnNext_Click"/> <Label x:Name="lblPath" Content="Label" HorizontalAlignment="Left" Margin="10,67,0,0" VerticalAlignment="Top"/> <Button x:Name="btnPathChange" Content="폴더변경" HorizontalAlignment="Left" Margin="10,98,0,0" VerticalAlignment="Top" Width="75" Click="btnPathChange_Click"/> <Label x:Name="lbl" Content="C:\Windows\System32\drivers" HorizontalAlignment="Left" Margin="10,123,0,0" VerticalAlignment="Top"/> <StackPanel x:Name="stp" Height="32" VerticalAlignment="Top" Orientation="Horizontal" /> | cs |
MainWindow.xaml.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | // 폴더 설정 string basePath = Environment.CurrentDirectory; // 기본 주소 string[] paths; // path 배열 int pathNum = 0; // path 배열 중에서 현재위치 public MainWindow() { InitializeComponent(); pathInit(Environment.CurrentDirectory); } // 기준폴더 변경 private void pathInit(string path) { paths = path.Split(System.IO.Path.DirectorySeparatorChar); pathNum = paths.Length; CreateBtn(paths); } // 스택패널에 버튼 생성 void CreateBtn(string[] paths) { int i = 0; stp.Children.Clear(); // 스택패널 초기화 foreach (string path in paths) { i++; Button btn = new Button(); // 버튼 생성 btn.Name = "btn" + i.ToString(); // 버튼명 // 버튼 생성 - 모양및 색상 btn.Content = " " + path + "\\ "; // 버튼 Content btn.Tag = i; // tag btn.Background = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255)); // 배경 btn.BoardBrush = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255)); // 배경 // 버튼 생성 - 이벤트 등록 btn.Click += new RoutedEventHandler(btnClick); // 이벤트 등록 stp.Children.Add(btn); // 스택패널에 넣기 } } private void btnClick(object sender, RoutedEventArgs e) { Button btn = sender as Button; pathNum = int.Parse(btn.Tag.ToString()); lblPath.Content = string.Join("\\", paths, 0, pathNum); } // 기준 폴더로 이동 private void btn_Click(object sender, RoutedEventArgs e) { pathNum = paths.Length; lblPath.Content = string.Join("\\", paths, 0 , pathNum); } // 이전 폴더로 이동 private void btnPre_Click(object sender, RoutedEventArgs e) { if (pathNum > 1) // 이전폴더가 있으면 이동 lblPath.Content = string.Join("\\", paths, 0, --pathNum); } // 다음 폴더로 이동 private void btnNext_Click(object sender, RoutedEventArgs e) { if (pathNum < paths.Length) // 다음폴더 있으면 이동 lblPath.Content = string.Join("\\", paths, 0, ++pathNum); } // 새로운 폴더정보 입력 private void btnPathChange_Click(object sender, RoutedEventArgs e) { string path = @"C:\Windows\System32\drivers"; pathInit(path); // 새로운 기준 폴더 설정 lblPath.Content = string.Join("\\", paths, 0, pathNum); } } | cs |
728x90
반응형
'Programing (프로그래밍) > WPF & C# (C Sharp)' 카테고리의 다른 글
WPF & C# - 진수 진법변환 5가지 방법(Base Converter) / Convert / ToInt32 / 2진수 / 10진수 / 16진수 / n진수 / StringBuilder ) (0) | 2018.06.12 |
---|---|
WPF & C# - Runtime.CompilerServices / TraceMessage 로그 파일 만들기 ( Log ) (0) | 2018.06.11 |
WPF & C# - 코드로 값 바인딩하기 ( code / Binding / Property ) (0) | 2018.06.07 |
WPF & C# - Process.Start 폴더 열기 / 파일 열기 ( FileOpen / FolderOpen ) (0) | 2018.06.06 |
WPF & C# - StringBuilder 사용법 (스트링빌더 / Append / Insert / Replace / Remove / ToString / Clear) (0) | 2018.06.05 |
WPF & C# - datepicker 날짜계산 ( 달력 ) (2) | 2018.06.05 |
WPF & C# - out VS ref 키워드 차이점 및 비교 (0) | 2018.06.05 |
WPF & C# - DataGrid 에 mdb 연결 ( db / connection / connect ) (0) | 2018.05.29 |