Smart Box
[VB.net] 폴더 내에 있는 모든 파일, 폴더 경로 불러오기 (재귀함수, FileSystemObject) 본문
Programming/VB.net
[VB.net] 폴더 내에 있는 모든 파일, 폴더 경로 불러오기 (재귀함수, FileSystemObject)
프매씨 2017. 5. 27. 03:21VB.net 에서는 File System Object(FSO)를 통해서 폴더 안에 있는 파일 또는 폴더 이름들을 불러올 수 있습니다.
그래서 이번에는 한 함수를 재귀적으로 호출하는 '재귀함수'를 만들어 폴더 내에 있는 모든 파일, 폴더 경로를 읽어와봤습니다.
(사실 재귀함수를 공부하고 이해하기 가장 쉬운 예는 이 경우인 것 같습니다.)
그럼 FSO을 사용하여 해당 폴더에 있는 모든 파일을 불러오는 예제 소스를 살펴보시죠 :)
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 | Public Function ShowFolderList(path As String) As List(Of String) Dim fso = CreateObject("Scripting.FileSystemObject") Dim folder = fso.GetFolder(path) Dim subFlds = folder.SubFolders Dim files = folder.files Dim temp As List(Of String) = New List(Of String) If (fso.FolderExists(path)) Then For Each fld In subFlds Dim templist = ShowFolderList(path & "\" & fld.Name) For i As Long = 0 To templist.Count - 1 temp.Add(templist.Item(i)) Next Next For Each fl In files temp.Add(path & "\" & fl.Name) Next End If Return temp End Function | cs |
위 예제 소스를 설명해드리자면,
1. ShowFolderList 함수로 [폴더]를 지정합니다.
2. [폴더] 내에 파일 이름을 불러와 경로들을 변수에 담습니다.
3. 만약, [폴더] 내에 [서브 폴더]들이 있다면, 1번으로 넘어가 [서브 폴더]들을 불러옵니다.
위 과정들을 반복하는 것 입니다.
요약하자면! 만약 폴더 안에 또 폴더(subFlds)가 있다면, 자기 자신을 다시 한 번 불러와 모든 리스트를 불러오는 방식입니다.
'Programming > VB.net' 카테고리의 다른 글
[VB.net] String to Byte array / Byte array to String (String에서 Byte 배열로) (0) | 2017.06.11 |
---|---|
[VB.net] Twitch2Afreeca - Twitch 방송제목을 Afreeca TV 방송제목으로! (0) | 2017.05.29 |
[VB.net] 커서가 가르키는 곳 색상 알아내기(Thread, GetDC, GetPixel) 예제 (2) | 2015.01.29 |
[VB.net] VB6에서 보던 Winsock 컨트롤을 직접 제작해보았습니다. (0) | 2015.01.18 |
Visual Studio(비주얼 스튜디오) VB.net 관리자 권한(Administrator) 프로그램 설정/만들기 (1) | 2015.01.09 |
Comments