본문 바로가기

JScript2

728x90
ASP 페이지에서 텍스트 파일을 조작하는 방법 이 문서에서는 ASP(Active Server Pages) 페이지 내에서 텍스트 파일을 만들고, 쓰고, 이동하고, 복사하고, 삭제하는 방법을 설명합니다. 데이터베이스나 복잡한 형식의 파일이 너무 많을 때 간편하게 사용하기 위하여 또는 이전 데이터가 텍스트 파일 형태일 때 텍스트 파일을 사용할 수 있습니다. 일반적인 시나리오는 다음과 같습니다. 메인프레임, 타사 응용 프로그램 또는 거래 파트너가 작성 또는 사용하는 플랫 파일을 읽거나 쓰기 클라이언트 응용 프로그램이 제공하는 매개 변수를 기반으로 동적으로 생성되는 Windows 배치 또는 스크립트 파일Scripting.FileSystemObject COM(구성 요소 개체 모델) 개체는 드라이버, 폴더 및 파일을 조작하는 다양한 기능을 제공합니다. 이 FSO.. 2009. 11. 26.
728x90
이 문서에서는 ASP(Active Server Pages) 페이지 내에서 텍스트 파일을 만들고, 쓰고, 이동하고, 복사하고, 삭제하는 방법을 설명합니다.

데이터베이스나 복잡한 형식의 파일이 너무 많을 때 간편하게 사용하기 위하여 또는 이전 데이터가 텍스트 파일 형태일 때 텍스트 파일을 사용할 수 있습니다. 일반적인 시나리오는 다음과 같습니다.
  • 메인프레임, 타사 응용 프로그램 또는 거래 파트너가 작성 또는 사용하는 플랫 파일을 읽거나 쓰기
  • 클라이언트 응용 프로그램이 제공하는 매개 변수를 기반으로 동적으로 생성되는 Windows 배치 또는 스크립트 파일
Scripting.FileSystemObject COM(구성 요소 개체 모델) 개체는 드라이버, 폴더 및 파일을 조작하는 다양한 기능을 제공합니다. 이 FSO(FileSystemObject) 개체는 ScrObj.dll이라고 하는 in-process COM 서버 내에서 구현됩니다. 이 문서에서는 FSO 개체 모델의 파일 조작 기능만 설명합니다.

요구 사항

다음 중 하나가 실행되어야 합니다.

  • Microsoft Internet Information Server(IIS) 4.0과 Active Server Pages(ASP) 2.0
  • Internet Information Services 5.0과 Active Server Pages 3.0
구현 세부 사항이 없는 경우 Microsoft COM 기술을 지원하는 스크립팅 언어를 사용하는 일반적인 방법을 적용할 수 있으며, 이러한 방법은 ASP에 국한되지 않습니다.

VBScript나 JScript를 잘 알면 도움이 됩니다.

FileSystemObject 만들기

텍스트 파일을 조작하기 전에 다음과 같이 FSO를 만듭니다.

VBScript 코드
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
				
JScript 코드
var objFSO;
objFSO = new ActiveXObject("Scripting.FileSystemObject");
				

텍스트 파일을 만들고 열고 삭제하는 방법

FSO는 빈 텍스트 파일을 만들 수 있는 CreateTextFile 메서드를 제공합니다. 또한 기존 파일을 열거나 삭제할 수 있는 OpenTextFileDeleteFile 메서드도 제공합니다. 또한 File 개체를 사용하여 세 가지 동작을 각각 수행할 수 있습니다. File 개체의 인스턴스를 얻으려면 FSO의 GetFile 메서드를 호출합니다. 그러나 이 문서는 FSO에서 직접적인 메서드만 보여줍니다. File 개체 기술에 대한 자세한 내용은 "참조" 절을 참조하십시오.

OpenTextFile 메서드를 사용하면 파일을 열어 텍스트 정보를 읽거나 쓰거나 추가할 수 있습니다.

VBScript 코드
Dim objFSO, objCreatedFile, objOpenedFile
Const ForReading = 1, ForWriting = 2, ForAppending = 8

'Create the FSO.
Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objCreatedFile = objFSO.CreateTextFile("c:\HowToDemoFile.txt", True)
Set objOpenedFile = objFSO.OpenTextFile("c:\HowToDemoFile2.txt", ForWriting, True)

'Use objCreatedFile and objOpenedFile to manipulate the corresponding files.
objCreatedFile.Close
objOpenedFile.Close

'Delete the files.
objFSO.DeleteFile "c:\HowToDemoFile.txt"
objFSO.DeleteFile "c:\HowToDemoFile2.txt"
				
JScript 코드
var objFSO, objCreatedFile, objOpenedFile;
var ForReading = 1, ForWriting = 2, ForAppending = 8;

// Create the FSO.
objFSO = new ActiveXObject("Scripting.FileSystemObject");

objCreatedFile = objFSO.CreateTextFile("c:\\HowToDemoFile.txt", true);
objOpenedFile = objFSO.OpenTextFile("c:\\HowToDemoFile2.txt", ForWriting, true);

// Use objCreatedFile and objOpenedFile to manipulate the corresponding files.
objCreatedFile.Close();
objOpenedFile.Close();

// Delete the files.
objFSO.DeleteFile("c:\\HowToDemoFile.txt");
objFSO.DeleteFile("c:\\HowToDemoFile2.txt");
				

텍스트 파일에서 쓰고 읽는 방법

FSO의 CreateTextFile 또는 OpenTextFile 메서드는 텍스트 파일에 쓰거나 파일을 읽는 메서드를 제공하는 TextStream 개체의 인스턴스를 반환합니다.

WriteWriteLine 메서드는 모두 텍스트를 열린 파일에 추가하지만 WriteLine은 후행 줄 바꿈 문자도 추가합니다. WriteBlankLines 메서드는 지정된 매개 변수를 기반으로 열린 파일에 하나 이상의 빈 줄을 씁니다.

Read 메서드는 열린 파일의 현재 위치에서 지정된 수의 문자를 읽습니다. ReadLine 메서드는 줄 바꿈 문자는 제외하고 줄 전체를 읽는 반면 ReadAll 메서드는 열린 파일의 전체 내용을 읽습니다. 이들 세 개의 메서드 모두 다양한 문자열 조작 방법을 사용하여 쉽게 조작할 수 있는 문자열로 결과 텍스트를 저장합니다.

다음 코드는 이런 메서드를 보여줍니다.

VBScript 코드
Dim objFSO, objTextFile
Dim sRead, sReadLine, sReadAll
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile("c:\HowToDemoFile.txt", True)

' Write a line with a newline character.
objTextFile.WriteLine("This line is written using WriteLine().")

' Write a line.
objTextFile.Write ("This line is written using Write().")

' Write three newline characters to the file.
objTextFile.WriteBlankLines(3)

objTextFile.Close

' Open file for reading.
Set objTextFile = objFSO.OpenTextFile("c:\HowToDemoFile.txt", ForReading)

' Use different methods to read contents of file.
sReadLine = objTextFile.ReadLine
sRead = objTextFile.Read(4)
sReadAll = objTextFile.ReadAll

objTextFile.Close
				
JScript 코드
var objFSO, objTextFile;
var sRead, sReadLine, sReadAll;
var ForReading = 1, ForWriting = 2, ForAppending = 8;

objFSO = new ActiveXObject("Scripting.FileSystemObject");
objTextFile =objFSO.CreateTextFile("c:\\HowToDemoFile.txt", true);

// Write a line with a newline character.
objTextFile.WriteLine("This line is written using WriteLine().");

// Write three newline characters to the file.
objTextFile.WriteBlankLines(3);

// Write a line.
objTextFile.Write ("This line is written using Write().");
objTextFile.Close();

// Open file for reading.
objTextFile = objFSO.OpenTextFile("c:\\HowToDemoFile.txt", ForReading);

// Use different methods to read contents of file.
sReadLine = objTextFile.ReadLine();
sRead = objTextFile.Read(4);
sReadAll = objTextFile.ReadAll();

objTextFile.Close();
				

텍스트 파일을 이동하고 복사하는 방법

FSO는 파일을 각각 이동하고 복사할 수 있는 MoveFileCopyFile 메서드를 제공합니다. 또한 File 개체를 사용하여 두 가지 동작을 각각 수행할 수 있습니다. File 개체의 인스턴스를 얻으려면 FSO의 GetFile 메서드를 호출합니다. 그러나 이 문서는 FSO에서 직접적인 메서드만 보여줍니다. File 개체 기술에 대한 자세한 내용은 "참조" 절을 참조하십시오.

다음 코드 예제는 이러한 메서드를 보여줍니다.

VBScript 코드
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

objFSO.MoveFile "c:\HowToDemoFile.txt", "c:\Temp\"
objFSO.CopyFile "c:\Temp\HowToDemoFile.txt", "c:\"
				
JScript 코드
var objFSO;
objFSO = new ActiveXObject("Scripting.FileSystemObject");

objFSO.MoveFile("c:\\HowToDemoFile.txt", "c:\\Temp\\");
objFSO.CopyFile("c:\\Temp\\HowToDemoFile.txt", "c:\\");
				

문제 해결

  • Scripting.FileSystemObject를 만드는 동안 오류 메시지 발생

    이 문제는 대부분 다음 시나리오 때문에 발생합니다.

    • ScrObj.dll이 구현 컴퓨터에 설치되지 않았습니다.
    • ScrObj.dll이 실수로 삭제되었습니다.
    • ScrObj.dll이 COM 레지스트리에서 실수로 등록 취소되었습니다.

    ScrObj.dll은 <Windows 설치 디렉터리>\System32 폴더에 있기 때문에 운영 체제 DLL(동적 연결 라이브러리)의 일부입니다. 따라서 Windows 2000 기반 컴퓨터에서는 시스템에 심각한 영향을 미치는 극단적인 방법을 사용하지 않고는 ScrObj.dll을 삭제할 수 없습니다.
  • 파일 조작 작업을 수행하는 동안 오류 메시지 발생

    드라이브가 NTFS 파일 시스템을 사용하여 포맷된 경우 관리자 그룹의 사용자는 전체 드라이브, 폴더 및 파일의 보안 사용 권한에 대한 제어 권한을 갖습니다. 특히 웹 서버에서 관리자는 파일과 정보에 대한 불법 액세스를 방지하기 위해 강력한 보안 사용 권한을 사용해야 합니다. 위에서 언급한 파일 조작 기술을 사용하는 ASP 응용 프로그램을 설계하고 작성할 때 불충분한 보안 사용 권한과 관련된 오류를 방지하기 위해 배포 컴퓨터에서 파일 시스템에 대한 보안 사용 권한을 부여하는 것을 특별히 고려해야 합니다.

출처 : support.microsoft.com
728x90
728x90