Programing (프로그래밍)/WPF & C# (C Sharp)
WPF & C# - 배열로 폴더 Path 이동하기 ( array / path / folder / Directory / 디렉토리 / DirectorySeparatorChar / Environment.CurrentDirectory )
insurang
2018. 6. 5. 16:07
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
반응형