웹 애플리케이션을 개발할 때 드라이브 관련 정보 수집, 폴더 및 파일 생성, 추가, 이동 또는 삭제 등 파일 시스템의 드라이브, 폴더 및 파일을 처리해야 하는 경우가 많습니다. VB6에서는 파일 시스템에 액세스하기 위해 FSO(File System Object)라는 새로운 개체 모델이 제공됩니다. 이 모델은 제공되는 일련의 속성과 메서드를 통해 애플리케이션에서 파일 시스템에 대한 다양한 작업을 보다 간단하고 유연하게 수행할 수 있는 개체 기반 도구를 제공합니다.
1. FSO 소개 FSO 개체 모델에는 다음 개체가 포함됩니다.
드라이브 개체: 시스템에 물리적으로 연결되거나 LAN을 통해 논리적으로 연결된 하드 디스크, CD-ROM 등 드라이브의 사용 가능한 공간, 공유 이름 등의 정보를 수집할 수 있습니다.
폴더 개체: 폴더를 생성, 삭제 또는 이동하고 시스템에 폴더의 이름, 경로 등을 쿼리할 수 있습니다.
파일 개체: 파일을 생성, 삭제 또는 이동하고 시스템에 파일 이름, 경로 등을 쿼리할 수 있습니다.
TextStream 객체: 텍스트 파일을 생성하고 읽고 쓸 수 있습니다.
FileSystemObject 개체: 드라이브, 폴더 및 파일 작업을 위한 완전한 메서드 세트를 제공합니다. 기능적으로는 위 개체의 컬렉션으로 간주될 수 있으며 종종 이들 개체와 함께 사용됩니다. 이 개체와 관련된 많은 메서드는 이전 네 개체의 메서드와 중복되므로 FileSystemObject 개체나 해당 드라이브, 폴더 또는 파일 개체를 통해 드라이브, 폴더 및 파일에 대한 대부분의 작업을 수행할 수 있습니다. FSO 모델은 두 가지 방법을 통해 동일한 개체에 대한 작업을 구현하며 작업 효과는 동일합니다. 이 중복 기능을 제공하는 목적은 프로그래밍 유연성을 극대화하는 것입니다.
이 기사에서는 FSO 개체 모델의 TextStream 개체를 사용하여 텍스트 파일의 작동을 설명합니다.
(1) FileSystemObject를 사용하여 텍스트 파일 객체 얻기 1. FileSystemObject 개체 인스턴스 만들기 파일 작업을 수행하려면 먼저 FileSystemObject 개체 인스턴스를 만들어 파일을 만들거나 열어야 합니다. FileSystemObject 객체 인스턴스를 생성하기 위한 구체적인 형식은 다음과 같습니다(AFileSystemObject 사용).
AFileSystemObject = CreateObject("Scripting.FileSystemObject") 설정
2. FileSystemObject를 사용하여 텍스트 파일 객체 TextStream을 얻습니다.
FileSystemObject는 텍스트 파일 개체 TextStream을 얻기 위한 두 가지 방법을 제공합니다. 그 중 CreateTextFile은 파일을 만드는 데 사용되며, OpenTextFile은 기존 파일을 여는 데 사용됩니다. 두 메서드의 반환 결과는 TextStream 개체의 인스턴스입니다. 수행됩니다.
⑴새 파일을 생성합니다. 새 파일을 생성하는 방법의 구체적인 형식은 다음과 같습니다(예: AFileSystemObject 사용).
AFilesystemObject.CreateTextFile(새파일이름,기존파일 덮어쓰기,유니코드)
안에:
NewFileName은 생성될 파일의 이름을 지정하는 문자열 값입니다. 일반적으로 C:webshareaspsampfiletest.txt와 같이 파일의 실제 경로와 파일 이름이 더해집니다.
OverwriteExistingFile은 동일한 이름의 파일이 존재하는 경우 원본 파일을 덮어쓸지 여부를 나타내는 부울 값입니다. 이 매개변수는 생략 가능하며 기본값은 False입니다. 즉, 원본 파일을 덮어쓰지 않습니다.
IsUnicode는 생성할 파일이 ASCII 파일인지 아니면 유니코드 파일인지를 나타내는 부울 값입니다.
이 매개변수는 생략 가능하며, 기본값은 ASCII 파일인 False입니다.
⑵ 기존 파일을 엽니다. 기존 파일을 여는 방법의 구체적인 형식은 다음과 같습니다(예: AFileSystemObject 사용).
AFilesystemObject.OpenTextFile(파일 이름,IOMode,생성,형식)
안에:
FileName은 열려는 파일의 이름을 지정하는 문자열 값입니다. 일반적으로 파일의 실제 경로에 파일 이름인 C:filepathtest.txt를 더한 값입니다.
IOMode는 파일을 여는 목적을 나타내는 상수 값이고 ForReading(1)은 데이터를 읽는다는 의미입니다.
ForAppending은 데이터를 추가하는 데 사용된다는 의미입니다. 이 매개변수는 생략 가능하며 기본값은 ForReading입니다.
Create는 열려는 파일이 존재하지 않는 경우 새 파일을 생성할지 여부를 나타내는 불리언 값입니다.
이 매개변수는 생략할 수 있으며 기본값은 False입니다. 즉, 새 파일이 생성되지 않습니다.
형식은 파일이 열리는 방식을 나타냅니다. 가능한 값과 의미는 다음과 같습니다.
TristateTrue: 유니코드 모드로 엽니다.
TristateFalse: ASCII 모드에서 열립니다.
TristateUseDefault: 시스템 기본 모드로 열립니다.
이 매개변수는 생략 가능하며 기본값은 ASCII 모드인 TristateFalse입니다.
(둘). 파일 작업에 TextStream 사용 파일을 생성하거나 연 후 TextStream 개체가 제공하는 메서드를 사용하여 실제 파일 작업을 수행할 수 있습니다.
1. 쓰기 작업에 사용되는 방법은 다음과 같습니다.
⑴쓰기(문자열)
string으로 지정된 문자열을 파일에 씁니다.
⑵WriteLine(문자열)
string으로 지정된 문자열을 파일에 쓰고 개행 문자를 씁니다.
매개변수 문자열을 생략할 수 있으며, 이 경우 파일에 빈 줄이 삽입됩니다.
⑶WriteBlankLines(NumOfLines)
파일에 여러 개의 빈 줄을 삽입합니다. 줄 수는 NumOfLines에 의해 지정됩니다.
2. 읽기 작업에 사용되는 메서드 및 속성 메서드는 다음과 같습니다.
⑴AtEndOfLine
이 속성은 파일 포인터가 현재 줄의 끝을 가리키는지 여부를 나타내는 부울 값입니다.
⑵AtEndOfStream
이 속성은 파일 포인터가 파일의 끝을 가리키는지 여부를 나타내는 부울 값입니다.
⑶ 칼럼
이 속성은 현재 행에서 파일 포인터의 위치를 나타내는 정수 값입니다.
⑷라인
이 속성은 파일 포인터가 위치한 행의 행 번호를 나타내는 정수 값입니다.
⑸ 읽기(문자 수)
이 메서드는 파일의 현재 위치에서 시작하여 NumOfCharacters 수로 지정된 문자 수를 읽고 문자열을 반환합니다.
⑹ReadLine
이 메서드는 파일의 현재 위치부터 시작하여 현재 줄의 내용을 줄 끝까지 읽고 문자열을 반환합니다.
⑺모두읽기
이 메서드는 현재 위치부터 시작하여 파일 끝까지 파일 전체의 내용을 읽고 문자열을 반환합니다.
⑻ 건너뛰기(문자 수)
이 메서드는 파일의 현재 위치에서 시작하여 NumOfCharacters 숫자로 지정된 문자 수를 건너뜁니다.
⑼ 스킵라인
이 메서드는 파일의 현재 위치에서 시작하여 현재 줄의 내용을 건너뜁니다.
3. 파일을 닫는 데 사용되는 방법은 다음과 같습니다.
⑴ 닫기
이미 생성되었거나 열려 있는 파일을 닫습니다.
(3) 다음은 FSO를 사용하여 텍스트 파일을 읽고 이를 데이터베이스에 저장하는 방법을 보여주는 예입니다.
1. 먼저 파일 경로를 읽을 페이지를 만듭니다. file.htm
...
<FORM METHOD=POST ACTION= "upFile .asp" >
<div align="center"> <br>
<br>
<br>
<br>
<input type="file" name="path" size="40">
<INPUT TYPE="제출 " name ="dr" value="정보 가져오기">
</div>
</FORM>
…
2. 얻은 텍스트 값을 데이터베이스에 저장하는 코드를 작성합니다: upFile.asp
<%Response .Buffer=true%>
<!--#include file="adovbs.inc"-->
<%
strConn="DSN=DataSourceName"
set Conn=Server.CreateObject("ADODB.Connection")
Conn.open strConn
set ObjComm =Server.CreateObject("ADODB.Command")
ObjComm.CommandText="sp_AddMsg" '저장 프로시저 호출
ObjComm.CommandType=adCmdStoredProc
Set ObjComm.ActiveConnection=Conn
'''''''''입력 생성 및 출력 매개변수''' '''''''''''''
Set ObjParamECom=ObjComm.CreateParameter("WC_ECompanyName",adVarchar,adParamInput,100)
ObjComm.Parameters.Append ObjParamECom
'@in_ECompanyName Varchar(50), --회사 영어 이름
Set ObjParamAddr=ObjComm.CreateParameter("WC_Address",adVarchar,adParamInput,200)
ObjComm.Parameters.Append ObjParamAddr
'@in_Address Varchar(50), --회사 주소
Set ObjParamCity=ObjComm.CreateParameter("WC_City" ,adVarchar,adParamInput, 100)
ObjComm.Parameters.Append ObjParamCity
'@in_City Varchar(50), --City
...
'''''''''' 매개변수 생성 완료''''''''' '''''' '''
%>
<%
희미한 AllText,strLine1,strLine2,strLine3
희미한 strpath,fileurl
fileurl=""
strpath=Trim(Request.form("path"))
fileurl=strpath
SET FSO=CreateObject( "Scripting.FileSystemObject")
SET ATextStream=FSO.OpenTextFile(fileurl,1,false,TristateFalse)
''''''''데이터 추출'''''''''''''''' '''' ''''
ATextStream.AtEndOfStream을 수행하지 않는 동안 수행
''''''변수 초기화'''''''''''''
strLine1=""
strLine2=""
strLine3=""
…
' '' '''''''''''''''''''''''
ATextStream.SkipLine
ATextStream.Skip(11)
strLine1=Trim(ATextStream.ReadLine)
ATextStream.Skip(11 )
strLine2=Trim(ATextStream.ReadLine)
ATextStream.Skip(5)
strLine3=Trim(ATextStream.ReadLine)
…
'End if
''''''''''매개변수 세트에 변수 추가'''''' '' '''''
ObjParamECom.value=strLine1
ObjParamCCom.value=strLine2
ObjParamAddr.value=strLine3
...
''''''''''작업 종료''''''''''' ''' '''
ObjComm.Execute() '명령 실행
LOOP
response.write "<br>"+"라이브러리 가져오기에 성공했습니다! <a href=dolist.html>[계속 가져오기]</a><br>"
set Conn=nothing
set FSO=nothing
set ATextStream=nothing
%>
첨부 파일: 저장 프로시저 sp_AddMsg 코드
CREATE PROCEDURE dbo.sp_AddMsg -- 외국 기업 가져오기 정보
(
@in_CompanyName Varchar(100), --회사 이름
@in_Address Varchar(200), --회사 주소
@in_City Varchar(100), --회사 도시
...
)
AS
SET NOCOUNT ON
BEGIN TRAN
INSERT INTO Tb_WCLibrary(
WC_CompanyName ,
WC_CCompanyName,
WC_Address,
…
)
VALUES(
@in_CompanyName,
@in_CCompanyName,
@in_Address,
…
)
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN -1
END
COMMIT TRAN
RETURN 0
SET NOCOUNT OFF
이 시점에서 전체 텍스트 설명은 다음과 같습니다. 이상, 이 기사가 독자들에게 도움이 될 수 있기를 바랍니다.