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