visual basic6.0부터는 Open문을 사용해 파일만을 처리했던 구 버전과는 달리 파일은 물론, 드라이브, 폴더까지 다룰 수 있는 FSO(File System Object)모델을 소개하고 있다. FSO모델을 사용하면 폴더를 작성, 변경, 이동, 삭제뿐만 아니라 폴더에 대해 여러가지 정보를 얻을 수 있다. 또한 파일을 쉽게 처리할 수 있다.  파일을 처리하는 주요목표는 공간과 컴퓨터자원을 효율적으로 사용하고 접근하기 쉬운 데이터를 저장하는 것이다. 이러한 파일처리목표를 달성할 수 있는 것이 FSO모델이다.
 
#파일시스템개체(FSO)구성
FSO모델의 개체구성원을 사용하려면 먼저 [프로젝트-참조]메뉴를 선택해 참조대화상자에서 "Microsoft Scripting Runtime"을 선택해야 한다.
 Scripting형식 라이브러리를 참조했다면 [보기-개체찾아보기]메뉴를 선택하여 개체찾아보기 대화상자에서 Scripting라이브러리를 선택하면 개체에 들어 있는 다양한 속성과 메서드 그리고 이벤트에 대한 내용을 볼 수 있다.
FSO모델은 아래와 같이 대표적인 개체로 구성되어 있다.
- drive :: 시스템에서 사용할 수 있는 디스크공간, 디스크의 공유이름과 같은 디스크정보를 얻을 수 있게 해준다. "drive"에는 하드디스크 이름이외에도 cd-rom드라이브, ram디스크와 같은 이름을 사용할 수 있다.
- folder :: 폴더를 만들고 삭제하고 이동할 수 있도록 해주며 이름과 경로 등에 대하여 시스템에 쿼리할 수 있게 한다.
- files :: 파일을 만들고 삭제하고 이동할 수 있도록 해주며 이름과 경로 등에 대하여 시스템에 쿼리할 수 있게 한다.
- FileSystemObject :: 그룹의 주 개체로 드라이브, 폴더, 파일을 일반적으로 조작하고 만들고 삭제하고 정보를 얻을 수 있도록 해주는 메서드가 들어있다.  이 개체와 연관된 많은 메서드들은 다른 개체에 들어있는 메서드들과 중복되어 있다.
- textStream :: 텍스트파일을 읽고 쓸 수 있게 한다.
 
#FSO모델 프로그래밍
이러한 FSO모델로 드라이브, 폴더, 파일을 다루려면 다음과 같은 3가지작업이 필요하다.
- CreateObject메서드를 사용하거나 변수를 FileSystemObject개체로 선언하여 FileSystemObject개체를 하나 만든다.
- 새로 만든 개체에 적절한 메서드를 사용한다.
- 개체의 속성을 엑세스한다.
 
#FileSystemObject개체 만들기
첫째 작업은 작업할 FileSystemObject개체를 만드는 것으로, 다음 두가지 방법이 있다.
  |형식| dim fso as new FileSystemObject  '변수를 FileSystemObject개체형식으로 선언
또는
  |형식| set fso = CreateObject("scripting.FileSystemObject")  'CreateObject메서드를 사용하여 FileSystemObject개체를 만든다.

#적절한 메서드사용
다음 작업은 FileSystemObject개체의 적절한 메서드를 사용하는 것이다.
예를 들어, 폴더에 대해선 CreateFolder메서드를 사용하여 폴더를 작성한다거나 MoveFolder메서드를 사용해 폴더를 이동할 수 있다.
 
#개체의 속성 엑세스
개체에 대한 핸들을 얻으면 get메서드를 사용하여 개체의 정보를 액세스할 수 있다. 예를 들어 특정폴더의 이름을 얻으려면 먼저 해당개체의 인스턴스를 하나 만들고 적절한 메서드를 사용하여 인스턴스에 대한 핸들을 얻을 수 있다.
다음은 이러한 3가지 단계를 이용해 새 폴더를 만들어보고, 기존 폴더에 대한 정보를 액세스하는 예제코드이다.
소스코드Private Sub Form_Click()
    Dim fso As New FileSystemObject, existF, newF As Folder
           
    Set newF = fso.CreateFolder("c:\my documents\test")
    Set existF = fso.GetFolder("c:\my documents")
   
    Debug.Print "새 폴더이름 :"; newF.Name
    Debug.Print "기 폴더이름 :"; existF.Name
    Debug.Print "새 폴더 작성시간 :"; newF.DateCreated
    Debug.Print "기 폴더 작성시간 :"; existF.DateCreated
End Sub
이 예제코드에서 createFolder메서드를 사용하여 새폴더를 만들 때는, name, path, dateCreated와 같은 속성을 액세스하는데 getFolder메서드를 사용할 필요가 없다. 반면에 기존에 있는 폴더의 속성을 액세스하려면 반드시 getFolder메서드가 필요함을 보여주고 있다.
신고
Posted by 나비 나비:D

BLOG main image
by 나비:D

공지사항

카테고리

분류 전체보기 (278)
Programming? (0)
----------------------------- (0)
나비의삽질 (5)
Application (177)
SQL (51)
Web (27)
etc. (14)
Omnia (0)
---------------------------.. (0)

글 보관함

달력

«   2017/08   »
    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    
Total : 870,086
Today : 41 Yesterday : 412