FSO란 무엇인가요?
fso FSO=Futong Showa Optical
Hangzhou Futong Communication Technology Co., Ltd.의 약어
전체 영문명은 다음과 같습니다.
hangzhou Futong Showa Optical communications co., ltd.
ASP에서 FSO는 파일 시스템 개체, 즉 파일 시스템 개체를 의미합니다. 이 경우 조작할 컴퓨터 파일 시스템은 웹 서버에 있습니다. 따라서 이에 대한 적절한 권한이 있는지 확인하십시오. 이상적으로는 쉽게 테스트할 수 있도록 자신의 컴퓨터에 웹 서버를 설정하는 것입니다. Windows 플랫폼에서 실행하는 경우 Microsoft의 무료 개인 웹 서버 PWS를 사용해 보십시오.
FSO 모델 개체
Drive 개체: 디스크 또는 네트워크 드라이브에 액세스하기 위한 드라이브 개체
FileSystemObject 개체: 컴퓨터의 파일 시스템에 액세스하기 위한 파일 시스템 개체
폴더 개체: 폴더의 모든 속성에 액세스하기 위한 폴더 개체
TextStream 개체: 파일 내용에 액세스하기 위한 텍스트 스트림 개체
위 개체를 사용하여 폴더에서 무엇이든 할 수 있습니다. 파괴적인 활동을 포함한 컴퓨터 ;-( 따라서 FSO 사용 시 주의하시기 바랍니다. 웹 환경에서는 사용자 정보, 로그 파일 등의 정보를 저장하는 것이 매우 중요합니다. FSO는 데이터를 저장하는 강력하고 간단한 방법을 제공합니다. 이 기사에서는 FileSystemObject 및 TextStream 개체에 중점을 둡니다.
FSO는 Microsoft에서 지원하며 ASP는 Windows 이외의 시스템에서는 더 이상 사용할 수 없습니다. FSO?
FSO를 사용하여 모든 작업을 수행하려면 먼저 개체를 만들어야 하며 코드는 다음과 같습니다.
Set; fso = Server.CreateObject("Scripting.FileSystemObject")
gt; 이는 FSO를 생성하고 이를 fso 변수에 할당한 다음 익숙한 object.method를 사용할 수 있습니다. 파일 시스템 작업을 수행하기 위한 구문(객체 및 객체 기반 프로그래밍에 대한 자세한 내용은 Visual Basic 설명서 참조) 여기서는 다음 예제에서 볼 수 있는 fso.method 또는 fso.property를 사용할 수 있습니다.
FSO 모델은 Microsoft에서 제공하는 스크립트 런타임 DLL 파일인 scrrun.dll에 있습니다. 이 DLL 파일은 Word가 아닌 MS Access 등 모든 응용 프로그램에서 참조할 수 있습니다. ASP로만 사용이 제한됩니다. p>
다음은 FSO 방법의 간략한 목록입니다.
FSO 방법
CopyFile은 하나 이상의 파일을 새 경로에 복사합니다.
CreateTextFile이 생성됩니다. 파일을 열고 TextStream 객체를 반환합니다.
DeleteFile은 파일을 삭제합니다.
OpenTextFile은 파일을 열고 읽거나 추가하기 위해 TextStream 객체를 반환합니다. 전체 FSO 방법과 속성을 알고 싶다면 Microsoft MSDN을 참조하세요. 몇 가지 예를 살펴보겠습니다.
권한
위에서 기본 지식에 대해 논의한 후 권한 문제에 대해 이야기하겠습니다. FSO는 이를 생성한 사용자 계정의 권한으로 실행됩니다. 즉, 누군가 인터넷에서 페이지에 액세스하면 인터넷 계정이 FSO를 생성합니다. 컴퓨터에 관리자로 로그인하고 페이지에 로그인하면 관리자 계정으로 FSO가 생성됩니다. 특정 계정에는 특정 권한이 있고 FSO는 해당 기능을 완전히 수행하려면 특정 권한이 필요하기 때문에 이는 매우 중요합니다. 인터넷 계정(IUSER_MachineName, MachineName은 서버 이름)에는 일반적으로 읽기 권한만 있으므로 사용자는 방명록 파일에 쓸 수 없습니다. 그러나 이 문제를 해결할 수 있는 몇 가지 옵션이 있습니다.
첫 번째이자 가장 어려운 것은 사용자가 방명록을 작성하기 전에 서버에 로그인하도록 요구하는 것입니다. 하지만 방명록의 목적은 익명의 사용자로부터 정보를 수집하는 것이고, 사용자에게 로그인을 요청하는 경우 해당 사용자가 누구인지 알아야 합니다. 따라서 이 옵션을 건너뛰고 다음 옵션을 살펴보세요.
두 번째 방법은 IUSER_MachineName 사용자에게 쓰기 권한이 있는 디렉터리나 파일을 만드는 것입니다. 그렇게 하면 올바른 디렉토리를 알고 웹 기술이 있는 사람이라면 누구나 서버에 콘텐츠를 채울 수 있으므로 잠재적인 보안 취약성이 발생할 수 있습니다. 이것은 심각한 금기 사항입니다. 따라서 쓰기 가능한 디렉토리의 정보를 숨겨진 위치에 저장해야 합니다
그리고 이러한 디렉토리를 가능한 한 웹 디렉토리 구조 외부에 설정해야 합니다(예를 들어 Windows에서는
inetpub 디렉터리 아래에 있지 않은 디렉터리).
파일 읽기
이제 간단한 데이터베이스처럼 일부 사용자 정보가 파일에 저장되었습니다. 사용자가 방문자 전체를 알고 싶다면 데이터베이스처럼 구조화된 컬럼이 없기 때문에 등록된 정보에서 해당 부분을 분리해야 한다. 생성된 파일에서 1행은 사용자 이름, 2행은 홈페이지, 3행은 이메일 주소라는 것을 알고 있습니다. 후속 등록 사용자도 자신의 정보를 이 구조에 저장하므로 3개 행마다 한 사용자의 등록 정보가 포함됩니다.
이를 알고 있으면 다음 코드를 작성하여 정보를 표시할 수 있습니다.
lt;
' fso 개체 만들기
set fso = Server.Createobject(" Scripting.FileSystemObject")
path = "c:emp est.txt"
' 파일 열기
set file = fso.opentextfile(path, 1 ) lt; --
읽기
다음으로 각 줄을 분석하고 데이터 형식을 지정합니다.
file .AtEndOfStream까지 수행
Response.write("이름: " & file.ReadLine & " ")
Response.write("홈 페이지: " & file.ReadLine & " ") " ")
Response.write("Email: " amp; file.ReadLine amp; "lt; pgt;")
루프
' 파일을 닫고 정리합니다.
.close
set file = Nothing
set fso = Nothing
gt;
이것은 매우 간단한 출력이지만 상황에 따라 테이블 또는 DHTML 양식 정보를 포함할 수 있습니다.
파일이 올바르게 생성되고 작성되면 위의 작은 루프가 데이터베이스의 각 사람에 대한 정보를 올바르게 나열합니다. ReadLine 메서드는 개행 문자가 나타날 때까지 1
줄의 콘텐츠를 읽고 후속 ReadLine 호출은 다음 줄을 읽습니다. AtEndOfStream은
파일의 끝을 발견했을 때 이를 알려주는 TextStream 개체의 속성입니다.
어떤 이유로 파일을 올바르게 구성하지 못했다고 가정할 때, 사용자가 3줄이 아닌 2줄의 정보만 갖고 있다면 일부 오류가 발생합니다. 여기 루프는 파일에서 다음 세 줄의 정보를 검색합니다. 정보가 세 줄 이하인 경우 다음 오류 메시지가 나타납니다.
서버 개체 오류 ' ASP 0177 : 800a003e'
따라서 파일에 추가 줄이 삽입되거나 필요한 줄 정보가 누락된 경우를 대비하여 일부 오류 처리 코드를 추가해야 합니다.
파일 쓰기
간단한 방명록을 만들고 싶다면 사용자 정보를 저장할 데이터베이스를 만들 수 있습니다. 그러나 데이터베이스의 강력한 기능이 필요하지 않은 경우 FSO를 사용하여 정보를 저장하면 시간과 비용이 절약됩니다. 또한 일부 ISP는 웹에서 데이터베이스 응용 프로그램을 제한할 수 있습니다.
다음은 간단한 양식 HTML 코드입니다.
lt; action="formhandler.asp" method="post"gt;
lt; input type="text" size="10" name="username"gt;
lt; input type="text" size="10" name="homepage"gt;
lt; input type="text" size="10" name="Email"gt;
lt; /formgt;
lt;
lt;
formhandler.asp에서 처리하는 방법을 살펴보겠습니다. 코드:
lt;
' 양식 정보 가져오기
strName = Request.Form("username")
strHomePage = 요청. Form("homepage")
strEmail = Request.Form("Email")
' fso 객체 생성
Set fso = Server.CreateObject(" Scripting.FileSystemObject")
지금까지는 양식 필드의 값을 가져와서 변수에 할당하는 것 외에는 새로운 것이 없습니다. 흥미로운 부분은 다음과 같습니다. 파일 쓰기:
path = "c: emp est.txt"
ForReading = 1, ForWriting = 2, ForAppending = 3
' 파일 열기
set file = fso.opentextfile(path, ForAppending, TRUE)
' 파일에 정보 쓰기
file.write (strName) & vbcrlf
file.write(strHomePage) & vbcrlf
file.write(strEmail) & vbcrlf
' 닫고 정리
file.close
set file = Nothing
set fso = Nothing
OpenTextFile 메서드는 TextStream 개체를 반환한다는 점을 기억하세요. 이 개체는 또 다른 개체입니다. FSO 모델에서. TextStream 개체는 줄 쓰기, 읽기, 줄 건너뛰기 등 파일 내용을 조작하기 위한 메서드를 노출합니다. VB 상수 vbcrlf는 개행 문자를 생성합니다.
TRUE는 OpentextFile 명령 매개변수에 정의되어 파일이 존재하지 않는 경우 시스템에 파일을 생성하도록 지시합니다. 파일이 존재하지 않고 TRUE 매개변수가 정의되지 않은 경우 오류가 발생합니다.