폴더를 선택할수 있는 FolderBrowserDialog
*
Imports System.Collections
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
With FolderBrowserDialog1
.Reset()
.Description = "선택하세요"
.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
.ShowNewFolderButton = True

Dim ret As DialogResult = .ShowDialog
If ret = Windows.Forms.DialogResult.OK Then
Dim nfiles As ObjectModel.ReadOnlyCollection(Of String)
nfiles = My.Computer.FileSystem.GetFiles(.SelectedPath)
MsgBox("폴더안의 파일갯수는 : " & nfiles.Count, MsgBoxStyle.Information)
End If
.Dispose()
End With
Catch ex As Exception

End Try
End Sub
End Class

* 사용자가 폴더를 선택하도록 요청하는 대화상자를 표시합니다

* 폴더를 선택할수 있는 콘트롤 이다

* 위 예제는 선택한 폴더안의 파일갯수를 구하는 예제이다

 

1.jpg 

2.jpg

 

 

이 게시물을

댓글'2'
교교
  • 2014.02.13
Visual Basic .NET에서 텍스트 파일 읽기 읽기 액세스를 위한 파일 열기 및 읽기는 해당 파일에 쓸 필요가 없더라도 입/출력(IO) 기능의 중요한 부분입니다. 이 예에서는 읽을 파일을 여는데, 이는 텍스트 파일의 경우 적합하지만 이진 파일의 경우 적합하지 않습니다. 이 예에서는 파일 열기에 사용할 수 있는 여러 방법 중 하나를 사용합니다. 파일에서 검색된 정보를 저장하는 데 사용할 수 있는 데이터 구조는 많지만, 가장 사용하기 쉬운 구조는 ArrayList 클래스입니다. 이 예에서는 System.IO 이름 공간의 개체, 특히 System.IO.StreamReader 클래스를 사용하여 파일을 열고 읽습니다.

참고: 이 예제의 작업을 수행하려면 몇 가지 형태의 읽을 텍스트 파일(.txt)이 있어야 합니다.

Visual Basic .NET에서 텍스트 파일을 로드하여 읽으려면 다음 절차를 수행하십시오.
  1. Visual Studio .NET을 엽니다. Visual Basic .NET에서 새 콘솔 응용 프로그램을 만듭니다. 그러면 Visual Studio에서 빈 Main() 프로시저가 있는 모듈을 자동으로 만듭니다.
  2. 프로젝트가 System 이름 공간을 참조하는지 확인합니다. System, System.IOSystem.CollectionsImports 문을 사용합니다. 그러면 나중에 코드에서 이 이름 공간의 선언을 한정하지 않아도 됩니다. 이 명령문은 항상 선언 앞에 사용해야 합니다.
    Imports System
    Imports System.IO
    Imports System.Collections
  3. 읽을 파일을 열기 위해 StreamReader 개체의 새 인스턴스를 만들고 다음과 같이 해당 파일의 경로를 생성자에게 전달합니다.
    Dim objReader As New StreamReader("c:\test.txt")
  4. 처리하는 동안 파일의 각 행을 저장할 문자열 변수가 필요합니다. 이 행을 ArrayList에 추가할 것이므로 이러한 유형의 개체도 선언하고 만듭니다.
    Dim sLine As String = ""
    Dim arrText As New ArrayList()
  5. 전체 파일을 한꺼번에 읽는 ReadToEnd 메서드를 비롯하여 파일을 읽을 수 있는 방법에는 여러 가지가 있습니다. 하지만 이 예에서는 ReadLine 메서드를 사용하여 파일을 한번에 한 행씩 불러올 수 있습니다. 파일 끝에 도달했을 때, 이 메서드는 루프를 종료할 수 있는 "Nothing"을 반환합니다. 파일의 각 행을 읽는 동안 ArrayListAdd 메서드를 사용하여 해당 행을 ArrayList 클래스에 삽입할 수 있습니다.
    Do
        sLine = objReader.ReadLine()
        If Not sLine Is Nothing Then
            arrText.Add(sLine)
        End If
    Loop Until sLine Is Nothing
    objReader.Close()
  6. 다음과 같이 "For Each" 루프를 사용하여 새로 채운 ArrayList의 내용을 콘솔에 표시합니다.
    For Each sLine In arrText
        Console.WriteLine(sLine)
    Next
    Console.ReadLine()
  7. 코드를 저장하고 실행합니다. 그러면 파일이 콘솔에 나열됩니다.

전체 코드 예제

Imports System
Imports System.IO
Imports System.Collections

Module Module1

    Sub Main()
        Dim objReader As New StreamReader("c:\test.txt")
        Dim sLine As String = ""
        Dim arrText As New ArrayList()

        Do
            sLine = objReader.ReadLine()
            If Not sLine Is Nothing Then
                arrText.Add(sLine)
            End If
        Loop Until sLine Is Nothing
        objReader.Close()

        For Each sLine In arrText
            Console.WriteLine(sLine)
        Next
        Console.ReadLine()
    End Sub

End Module

주의 사항

파일 입/출력(I/O) 작업을 할 때는 다음 항목을 비롯하여 여러 가지 사항에 주의해야 합니다.
  • 읽거나 쓸 파일에 액세스할 때 해당 파일이 시스템에 없거나 이미 사용되고 있을 수 있습니다.
  • 이 예에서는 파일을 처리하기 전에 전체 파일을 메모리로 읽어들입니다. 파일이 너무 커서 메모리에 저장할 수 없거나 해당 파일에 대한 액세스 권한이 없을 수 있습니다.
이러한 경우에는 항상 예외가 발생합니다. 항상 try...catch 블록을 제공하여 이러한 일반적인 문제를 해결하는 것이 좋습니다.

참조

자세한 내용은 다음 Microsoft .NET SDK QuickStart Tutorials 웹 사이트를 참조하십시오.

이 댓글을

이 댓글을

공유하기

SEARCH

MENU NAVIGATION