본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - File Open Copy Move Rename ( 파일 열기 / 복사하기/ 이동하기 / 이름변경하기 )

728x90
반응형


 WPF & C# - File Open Copy Move Rename ( 파일 열기 / 복사하기/ 이동하기 / 이름변경하기 )



testFile.zip



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 &amp; 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
반응형