본문 바로가기

VB.NET

OpenFileDialog를 이용해서 파일을 선택하고 복사하기

반응형

안녕하세요.

OpenFileDialog 를 이용해서 파일을 선택하고, 복사하는 방법을 간단하게 설명합니다.


OpenFileDialog에 대해서는 아래의 링크에서 확인할수 있습니다.

https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.openfiledialog?view=net-5.0/?WT.mc_id=DT-MVP-4039890


Validation 은 따로 설정하기 않기때문에

파일이 선택되어지지 않은 상황에서의 에러 혹은 경고 메세지에 대해서는 양해 부탁드립니다.


먼저 기동하고난 후의 화면입니다.

복사할 대상 폴더로 이미 C: 의 test 폴더를 지정해둔 상황입니다.


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
82
83
84
Public Class Form1
 
    ''' <summary>
    ''' 파일을 선택합니다.
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Private Sub btnFileSelect_Click(sender As Object, e As EventArgs) Handles btnFileSelect.Click
 
        Dim OpenFileDialog1 As New OpenFileDialog()
        OpenFileDialog1.Title = "파일선택 타이틀입니다."
 
        ' 초기 디렉토리를 설정합니다.
        OpenFileDialog1.InitialDirectory = "C:\"
        ' 초기 선택파일명을 선택합니다.
        OpenFileDialog1.FileName = "초기파일명"
        ' 파일의 필터를 설정합니다.
        OpenFileDialog1.Filter = "텍스트파일|*.txt;*.log|전체파일|*.*"
        ' 필터의 초기설정입니다. 
        OpenFileDialog1.FilterIndex = 1
        ' 다이얼로그를 닫을때 마지막 설정을 유효로 하겠다는 설정입니다.
        OpenFileDialog1.RestoreDirectory = True
        ' 복수파일을 선택가능하게 합니다.
        OpenFileDialog1.Multiselect = False
        ' HELP 버튼을 표시합니다.
        OpenFileDialog1.ShowHelp = True
        ' 읽기전용으로 표시합니다.
        OpenFileDialog1.ShowReadOnly = True
        ' 체크박스를 표시합니다.
        OpenFileDialog1.ReadOnlyChecked = True
        ' 존재하지않는 파일을 선택했을때 경고를 표시합니다.
        'OpenFileDialog1.CheckFileExists = True
        ' 존재하지않는 경로를 지정했을때 경고를 표시합니다.
        'OpenFileDialog1.CheckPathExists = True
        ' 확장자가 존재하지 않는경우에는 확장자를 자동으로 붙여줍니다.
        'OpenFileDialog1.AddExtension = True
        ' 유효한 Win32 파일명만을 입력받게합니다.
        'OpenFileDialog1.ValidateNames = True
        ' 다이얼로그를 표시하고 OK 선택시에만 선택한 파일을 표시합니다.
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            TextBox1.Text = OpenFileDialog1.FileName
            ' 파일이 복수선택 되었을때는 아래의 로직이 돌아가며 뿌려줍니다.
            'For Each nFileName As String In OpenFileDialog1.FileNames
            '    MessageBox.Show(nFileName)
            'Next nFileName
        End If
        ' 처리가 끝났으므로 파기합니다.
        OpenFileDialog1.Dispose()
    End Sub
    ''' <summary>
    ''' 파일을 지정된곳으로 복사합니다.
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Private Sub btnFileCopy_Click(sender As Object, e As EventArgs) Handles btnFileCopy.Click
        ' 파일명을 취득합니다.
        Dim fileName As String = System.IO.Path.GetFileName(TextBox1.Text)
        ' 파일을 복사합니다.
        System.IO.File.Copy(TextBox1.Text, TextBox2.Text & fileName, True)
        ' 파일을 이동합니다.
        'System.IO.File.Move("C:\test\1.txt", "C:\test\3.txt")
    End Sub
End Class
cs



btnFileSelect_Click 이벤트에서는

파일 선택창을 열어서 파일을 지정하도록 합니다.

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
 
        Dim OpenFileDialog1 As New OpenFileDialog()
        OpenFileDialog1.Title = "파일선택 타이틀입니다."
 
        ' 초기 디렉토리를 설정합니다.
        OpenFileDialog1.InitialDirectory = "C:\"
        ' 초기 선택파일명을 선택합니다.
        OpenFileDialog1.FileName = "초기파일명"
        ' 파일의 필터를 설정합니다.
        OpenFileDialog1.Filter = "텍스트파일|*.txt;*.log|전체파일|*.*"
        ' 필터의 초기설정입니다. 
        OpenFileDialog1.FilterIndex = 1
        ' 다이얼로그를 닫을때 마지막 설정을 유효로 하겠다는 설정입니다.
        OpenFileDialog1.RestoreDirectory = True
        ' 복수파일을 선택가능하게 합니다.
        OpenFileDialog1.Multiselect = False
        ' HELP 버튼을 표시합니다.
        OpenFileDialog1.ShowHelp = True
        ' 읽기전용으로 표시합니다.
        OpenFileDialog1.ShowReadOnly = True
        ' 체크박스를 표시합니다.
        OpenFileDialog1.ReadOnlyChecked = True
        ' 존재하지않는 파일을 선택했을때 경고를 표시합니다.
        'OpenFileDialog1.CheckFileExists = True
        ' 존재하지않는 경로를 지정했을때 경고를 표시합니다.
        'OpenFileDialog1.CheckPathExists = True
        ' 확장자가 존재하지 않는경우에는 확장자를 자동으로 붙여줍니다.
        'OpenFileDialog1.AddExtension = True
        ' 유효한 Win32 파일명만을 입력받게합니다.
        'OpenFileDialog1.ValidateNames = True
        ' 다이얼로그를 표시하고 OK 선택시에만 선택한 파일을 표시합니다.
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            TextBox1.Text = OpenFileDialog1.FileName
            ' 파일이 복수선택 되었을때는 아래의 로직이 돌아가며 뿌려줍니다.
            'For Each nFileName As String In OpenFileDialog1.FileNames
            '    MessageBox.Show(nFileName)
            'Next nFileName
        End If
        ' 처리가 끝났으므로 파기합니다.
        OpenFileDialog1.Dispose()
cs


btnFileCopy_Click 이벤트에서는 지정된 파일을 지정해둔 폴더로 복사 혹은 이동하는 역활을 합니다.

1
2
3
4
5
6
7
        ' 파일명을 취득합니다.
        Dim fileName As String = System.IO.Path.GetFileName(TextBox1.Text)
 
        ' 파일을 복사합니다.
        System.IO.File.Copy(TextBox1.Text, TextBox2.Text & fileName, True)
 
        ' 파일을 이동합니다.
cs


전체 소스는 아래 첨부파일을 참고하세요.

FileDialog.zip


반응형