728x90
반응형
Scripting.FileSystemObject 객체를 이용하여 서버의 파일 및 폴더를 마음대로 주무를 수 있습니다. 특정 경로를 새로 만들때는 FSO의 CreateFolder 프로시저를 이용하게 되는데, 문제는 이 메소드가 하나의 폴더만 만들 수만 있다는 점입니다.
예를 들면, "C:\Temp\Web\Upload\2010\02\10" 식의 디렉토리에 임시 폴더를 생성하려 한다면, CreateFolder 메소드로는 바로 오류가 발생하게 됩니다. 차례 차례 경로를 들어가면서 해당 디렉토리가 없으면 하나씩 생성해 주어야 되죠. 이를 테면 다음과 같이 만들어야 겠죠.
위와 같이 해주어야 "C:\Temp\Web\Upload\2010\02\10" 폴더가 원하는 형태로 생성이 됩니다. 하지만 경로가 날짜에 따라서 바뀌므로, 위와 같은 하드 코딩으로는 불가능하죠. 이를 다음과 같은 재귀함수를 사용하면 손쉽게 해결이 됩니다.
예를 들면, "C:\Temp\Web\Upload\2010\02\10" 식의 디렉토리에 임시 폴더를 생성하려 한다면, CreateFolder 메소드로는 바로 오류가 발생하게 됩니다. 차례 차례 경로를 들어가면서 해당 디렉토리가 없으면 하나씩 생성해 주어야 되죠. 이를 테면 다음과 같이 만들어야 겠죠.
If not objFSO.FolderExists("C:\Temp") then Call objFSO.CreateFolder(("C:\Temp") End if If not objFSO.FolderExists("C:\Temp\Web") then Call objFSO.CreateFolder("C:\Temp\Web") End if If not objFSO.FolderExists("C:\Temp\Web\Upload") then Call objFSO.CreateFolder("C:\Temp\Web\Upload") End if If not objFSO.FolderExists("C:\Temp\Web\Upload2010") then Call objFSO.CreateFolder("C:\Temp\Web\Upload2010") End if If not objFSO.FolderExists("C:\Temp\Web\Upload2010\02") then Call objFSO.CreateFolder("C:\Temp\Web\Upload2010\02") End if If not objFSO.FolderExists("C:\Temp\Web\Upload2010\02\10") then Call objFSO.CreateFolder("C:\Temp\Web\Upload2010\02\10") End if
위와 같이 해주어야 "C:\Temp\Web\Upload\2010\02\10" 폴더가 원하는 형태로 생성이 됩니다. 하지만 경로가 날짜에 따라서 바뀌므로, 위와 같은 하드 코딩으로는 불가능하죠. 이를 다음과 같은 재귀함수를 사용하면 손쉽게 해결이 됩니다.
' --------------------------------------------------------------------- '* @info Generate a folder tree from the path '* '* @param (String) Path '* @return (Boolean) Folder Exists: Recursion continues (Y/N) ' --------------------------------------------------------------------- Function GeneratePath(objFSO, pFolderPath) GeneratePath = False If Not objFSO.FolderExists(pFolderPath) Then If GeneratePath(objFSO, objFSO.GetParentFolderName(pFolderPath)) Then GeneratePath = True Call objFSO.CreateFolder(pFolderPath) End If Else GeneratePath = True End If End Function
재귀함수를 이용하면 정말 간편하게 작업할 수 있습니다. 위 함수를 공통으로 사용하는 파일에 포함시켜 놓으면 유용하게 사용하실 수 있습니다.
'프로그래밍 > 웹 관련' 카테고리의 다른 글
URL Rewrite를 위한 ISAPI Rewirte 3.0 Lite 설치기 (0) | 2010.06.16 |
---|---|
특정 작업 동안 기다리기 페이지 구현하기. (0) | 2010.03.15 |
IIS 웹로그가 생성이 안되었던 문제... (0) | 2009.08.03 |
ASP에서 UTF-8 처리 (0) | 2009.04.11 |
유용한 몇몇 사이트 (0) | 2009.02.13 |