Programing (프로그래밍)/WPF & C# (C Sharp)
WPF & C# - File Open Copy Move Rename ( 파일 열기 / 복사하기/ 이동하기 / 이름변경하기 )
insurang
2018. 11. 20. 01:57
728x90
반응형
WPF & C# - File Open Copy Move Rename ( 파일 열기 / 복사하기/ 이동하기 / 이름변경하기 ) |
MainWindow.xaml.cs
1 2 3 4 5 6 7 8 9 10 11 12 | <StackPanel> <Button x:Name="btnOpen" Content="Open" Height="28" Click="btnOpen_Click"/> <TextBox x:Name="tbx" Height="28" TextWrapping="Wrap" /> <Button x:Name="btnCopy" Content="Copy" Height="28" Click="btnCopy_Click"/> <Button x:Name="btnMove" Content="Move & rename" Height="28" Click="btnMove_Click"/> <Button x:Name="btnDelete" Content="Delete" Height="28" Click="btnDelete_Click"/> </StackPanel> <!--PopUp--> <Grid x:Name="grdPopUp" Visibility="Collapsed" Background="#4C000000"> <TextBox x:Name="tbxPopUp" Width="200" Height="28"></TextBox> </Grid> | 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 | using Microsoft.Win32; using System.IO; using System.Windows; string file = ""; // 파일 Path // 파일열기 private void btnOpen_Click(object sender, RoutedEventArgs e) { // 파일 열기 OpenFileDialog ofdlg = new OpenFileDialog(); { ofdlg.Filter = // 필터설정 "txt File | *.txt"; ofdlg.CheckFileExists = true; // 파일 존재여부확인 ofdlg.CheckPathExists = true; // 폴더 존재여부확인 // 파일 열기 (값의 유무 확인) if (ofdlg.ShowDialog().GetValueOrDefault()) { file = ofdlg.FileName; tbx.Text = file; } } } // 파일 복사 하기 private void btnCopy_Click(object sender, RoutedEventArgs e) { // 파일명 + 확장자 분리 string file_name = System.IO.Path.GetFileNameWithoutExtension(file); // 파일명 추출 "Survive You" string strExtension = System.IO.Path.GetExtension(file); // 확장자 추출 (".txt") // 파일 존재 유무 체크 FileInfo fiVal = new FileInfo(file_name + " - 복사본" + strExtension); int i = 1; while (fiVal.Exists) { fiVal = new FileInfo(file_name + " - 복사본 (" + i++ + ")" + strExtension); } // 파일 복사 FileInfo fi = new FileInfo(file); fi.CopyTo(fiVal.Name); } // 파일 이동 & 이름 변경하기 private void btnMove_Click(object sender, RoutedEventArgs e) { grdPopUp.Visibility = Visibility.Visible; tbxPopUp.Text = tbx.Text; grdPopUp.MouseDown += (s, d) => { grdPopUp.Visibility = Visibility.Collapsed; FileInfo fi = new FileInfo(tbx.Text); fi.MoveTo(tbxPopUp.Text); tbx.Text = tbxPopUp.Text; }; } // 파일 삭제 하기 private void btnDelete_Click(object sender, RoutedEventArgs e) { FileInfo fi = new FileInfo(file); fi.Delete(); } | cs |
728x90
반응형