2009. 1. 7. 21:43
 FileSystemObject (FSO) 를 이용한 프로그래밍

   1. FSO 오브젝트 생성

   2. Method 또는 Property 이용


FSO 는 WSH 와 마찬가지로 먼저 객체(object) 를 생성하여 해당 객체에서 사용 가능한
여러가지 명령(method)과 속성(property)을 이용하여 작업이 이뤄진다.
다만, WSH 는 다양한 객체를 생성할 수 있는 것에 비해 FSO 는 단일 객체로서
Scripting.FileSystemObject 를 이용하여 생성된 객체를 가리킨다.

당연한 얘기지만, Scripting.FileSystemObject 를 이용하여 생성된 객체(FSO)가 어떤 명령(method) 과 속성(property)을 이용할 수 있는지 정의된 어떤 것(Scripting Type Libray)이 필요하며,이러한 정의는 Scrrun.dll 파일에 들어 있다.
따라서 Scrrun.dll 파일이 시스템에 설치되어 있지 않으면 FSO 관련 작업을 할 수 없다.

Set WshNetwork = WScript.CreateObject("WScript.Network")
' FSO 객체는 scrrun.dll 이 설치되어 있다면 CreateObject 를 이용해서 바로 객체를 생성하지만,
' WSH 의 경우에는 메인 오브젝트인 WScript 를 객체로 하여 새로운 객체를 생성한다.
' 따라서 FSO는 WSH 없이 단독으로 얼마든지 사용할 수 있다.

   [1] CreateObject method 를 이용하여 FileSystemObject object 를 생성.
      Set FSO = CreateObject ("Scripting.FileSystemObject")  ' Visual Basic Script
      var FSO = new ActiveXObject ("Scripting.FileSystemObject");      // JScript

   [2] FileSystemObject object 의 적절한 method 를 이용. 
      Set f1 = FSO.GetFile ("c:\test.txt")
      Set fldr = FSO.GetFolder ("c:\")
     "create" methods 를 통해 object 를 생성시 "get" methods 는 다시 사용할 필요가 없다.
     "create" functions 을 통해 이미  object 의 handle 이 반환되어 있기때문이다.

   [3] Access the object's properties. 
      Response.Write "Folder name is: " & fldr.Name
      Response.Write "File last modified: " & f1.DateLastModified

// JScript
var fso = new ActiveXObject ("Scripting.FileSystemObject");

var f1 = fso.GetFile ("c:\\test.txt");
var fldr = fso.GetFolder ("c:\\");

Response.Write("Folder name is: " + fldr.Name);
Response.Write("File last modified: " + f1.DateLastModified); 
 

[FSO 상수]=======================================================
상수(Constant)란 쓰기 편하게 특정 단어로 값을 지정해 두고 실제 쓸 때는
값 대신 단어(상수)로 사용하는 걸 말하며,
값(Value)을 알고 있다면 굳이 상수로 선언하는 등의 절차 필요없이 바로 쓰면 된다.

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const OverWritExist = True
Set FSO = CreateObject ("Scripting.FileSystemObject")
Set ts = FSO.OpenTextFile ("c:\test.txt", ForWriting, OverWritExist )
' => Set ts = FSO.OpenTextFile ("c:\test.txt", 2, True)

'----------------------------------------------------------------
드라이브 형식 상수 (상수    설명)
Constant    Value    Description
Unknown      0       ' 알 수 없는 형식의 드라이브
Removable    1       ' 이동식 매체 - 모든 플로피 드라이브와 기타 여러 저장 장치들
Fixed            2       ' 고정 매체 - 이동식 하드 디스크를 포함하여 모든 하드 디스크
Remote         3       ' 네트워크 드라이브
CDROM        4       ' CD-ROM 드라이브 - CDR , CDRW 를 구분하지 않음
RAMDisk      5       ' 로컬 컴퓨터의 RAM 드라이브
'----------------------------------------------------------------
파일 특성 상수
Constant       Value    Description
Normal                   ' 특성을 지정하지 않은 파일 (표준 파일)
ReadOnly               ' 읽기 전용 파일
Hidden              2      ' 숨겨진 파일
System                   ' 시스템 파일
Directory           16     ' 폴더나 디렉터리
Archive             32     ' 마지막 백업 후에도 바뀌는 파일
Alias                1024   ' 링크 또는 바로 가는 키
Compressed     2048   ' 압축 파일
'----------------------------------------------------------------
파일 입/출력 상수
Constant      Value    Description
ForReading        1    ' 읽기 전용으로 열기 (이 파일에는 쓸 수 없다.)
ForWriting          2    ' 쓰기 전용으로 열기 (같은 이름의 파일이 존재할 경우 덮어 쓴다.)
ForAppending       ' 쓰기 전용으로 열기 (같은 이름의 파일이 존재할 경우 끝에 이어서 쓴다.)
'----------------------------------------------------------------
특수 폴더 상수
Constant         Value    Description
WindowsFolder     0     ' Windows 운영 체제로 설치한 파일이 들어 있는 Windows 폴더
SystemFolder        1     ' 라이브러리, 글꼴 및 장치 드라이버가 들어 있는 시스템 폴더
TemporaryFolder      
' 임시 폴더로 이 폴더의 경로는 TMP 환경 변수에 나타난다. 


Posted by ToTb