<%

strPath = "" <- 경로가 들어갈 변수

Call GetFolderList(strPath)  
'호출!!


 Sub GetFolderList(strPath)

  Dim FSO, Folder, Sub_folder
  
  Set FSO = Server.CreateObject( "Scripting.FileSystemObject" )
  Set Folder = FSO.GetFolder(strPath)
  Set Sub_folder = Folder.Subfolders

  For Each folder In Sub_folder 

   if folder.Name <> "" then 
    GetFolderList(strPath&"\"&folder.Name)
    '시작 경로에서 하위 폴더를 붙이면서 검색한다.
    Response.Write "<hr><font color=blue>"
    Response.Write strPath & "\" & folder.name & "\<br>"
    '폴더명을 출력한다.
    Response.Write "</font>"
    Call GetFileList(strPath & "\" & folder.name) '
    하위 폴더에 있는 파일을 검색한다.    
    end if   
  Next

  Set Sub_folder = Nothing
  Set Folder = Nothing
  Set FSO = Nothing
' 개채를 비운다.  
 End Sub

 Sub GetFileList(strPath)
  Dim FSO, Folder, Files, FilePath
  Set FSO = Server.CreateObject( "Scripting.FileSystemObject" )
  Set Folder = FSO.GetFolder(strPath) 
  '하위 폴더명을 붙이면서 Folder개채를 생성한다.
  Set Files = Folder.Files
  'Folder개채로 File개채를 생성한다.
  For Each file In Files  
     FilePath = strPath&"\"&File.Name
     Response.write FilePath & "<br>" 
     'File개채들을 출력한다.
  Next
  Set Files = Nothing
  Set Folder = Nothing
  Set FSO = Nothing
 End Sub

%>
 
라임색으로 된 코드를 수정하면 바로 링크가 가능한 경로로 출력을 할수 있다. (물론에 서버에 있다는 가정하에.)
(replace 함수로 변환 시키면 url로 출력하면 끝)
이것을 Xml로 해서 mfc와 연동하면서 했던 것인데.

XML 역시 짜증나는 녀석이다.
많이 써보지 않으니 이 에러가 무슨 에러 인지 당최 알수 가 없는 경우..

  Set Files = Folder.File <- 이부분이 잘 못 되었네요 ㅇㅅㅇ; Folder.Files 였네요 ㅎㅎ;;



'공부방 > ASP' 카테고리의 다른 글

[ASP] 성능향상을 위한 ASP Tips  (2) 2009.09.05
[ASP] URL에서 파일 확장자 알기  (0) 2009.09.04
[ASP] FileSystemObject  (0) 2009.08.10
[ASP] 오류코드  (0) 2009.08.04

 - 아직 제대로 보지는 못했지만 정리가 잘 되어 있을 듯한 ;

File관련 메소드


CopyFile(src,dest,over) : src 파일을 dest로 복사한다. 겹쳐쓰기 기능은 true가 기본값.


CreateTextFile(fname,over,unicode) : fname을 가진 텍스트 파일을 생성한다. over가 true면 겹쳐쓰기가 가능


DeleteFile(fname,force) : 현재의 파일을 삭제한다.force가 true면 해당 파일이 읽기 전용이라도 강제로 삭제


fileExists(fname) : 해당 파일의 존재 여부를 반환한다.


GetBaseName(fname) : 지정한 파일 경로와 확장자가 제거된 파일명을 반환한다.


GetExtensionName(fname) : 지정한 파일 확장자를 반환한다.


GetFile(fname) : 지정된 파일 경로에 해당하는 File 개체를 생성한다.


GetFileName(path) : 해당 경로에 지정된 파일명을 반환한다.


GetTempName() : 무작위로 생성된 파일명을 반환한다.


MoveFile(sec,dest) : src 경로의 파일을 dest로 옮긴다.


OpenTextFile(fname,io,create,format) : fname으로 된 텍스트 파일을 생성한다. io 값으로 모드를 선택한다.

1: 읽기 2 :쓰기 8 : 덧붙이기




FileSystemObject

*드라이브 정보 얻어 오기

Set fs = Sever.CreateObject("Scripting.FileSystemObject")

Set Cdrive = fs.GetDrive("c:")

Cdrive.freespace                                                                      =>드라이브의 잔여용량을 가져온다.

Cdrive.TotalSize                                                                       =>드라이브의 전체 용량

Cdrive.VolumeName                                                                  =>드라이브의 볼륨명

Cdrive.ShareName                                                                    =>드라이브의 네트워크 공유이름

Cdrive.SerialNumber                                                                  =>디스크 볼륨의 10진 시리얼 번호

Cdrive.RootFolder                                                                      =>드라이브의 루트폴더

Cdrive.Path                                                                               =>드라이브의 경로명               

Cdrive.FileSystem                                                                       =>드라이브의 파일 시스템

Cdrive.IsReady                                                                           =>드라이브의 준비여부(true/false)


*파일정보 얻어 오기

Set fs = Server.CreateObject("Scripting.FileSysteObject")

Set myfile = fs.GetFile("c:/config.sys")

myfile.Size                                                                                => 파일 크기

myfile.Type                                                                               => 파일 타입

myfile.Path                                                                                => 파일 경로

myfile.ShortName                                                                       => 파일 이름

myfile.ShortPath                                                                        => 파일 경로

myfile.ParentFolder                                                                    => 파일의 상위폴더

myfile.Name                                                                              => 파일 이름

myfile.Drive                                                                               => 파일 위치 드라이브명

myfile.DateCreated                                                                     => 파일만들어진 날짜 시간

myfile.DateLastAccessed                                                            => 마지막 액세스된 날짜 시간

myfile.DateLastModified                                                              => 마지막 수정일


*파일생성하기

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set objFile = fs.CreateTestFile("c:\a\b.txt",true,false)                =>전체경로,덮어쓰기여부,유니코드orASCII코드인지

objFile.FileExists("c:\a\b.txt")                                                 =>파일의 존재 여부 체크 존재하면true 그렇지 안으면 false

objFile.DeleteFile("c:\a\b.txt")                                                 =>파일 지우기


*파일에 글쓰기

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set objFile = fs.OpenTextFile("c:\a\b.txt",8,true,-1)

=>전체 경로, 1이면 읽기전용 8이면 쓰기가능, true이면 없을경우 새로 생성 false이면 무조건 말일 존재,파일포맷

   첫번째인자만 필수이고 나머지 생략가능  -- Set objFile = fs.OpenTextFile("c:\a\b.txt",8)이런식으로 많이 사용,


*파일에서 글 읽어 오기

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set objFile = fs.OpenTextFile("c:\a\b.txt",1)       =>글을 읽어 올때는 읽기전용(1) 값으로 반드시 셋팅한다.


Do While objFile.AtEndOfStream<>true                 =>AtEndOfStream은 글의 끝부분에 도달하면 ture를 return한다

       Response.write objFile.readLine & "<br>"     =>글은 한줄씩 읽어 온다.

loop


content = objFile.readall                                  =>글 전체를 읽어 온다.

str = replace(content,chr(13)&chr(10),"<br>")    =>replace(전체문자열,바꾸고자하는것,바꿀문자) chr(13)&chr(10)는 Enter이다

Response.write str


write                          =>파일에 문자열을 입력

writeLine                    => 파일에 문자열과 엔터값(라인)을 입력

WriteBlankLine(i)         =>파일에 i개의 엔터값을 입력

Read(i)                      =>파일에서 i개의 문자만을 읽어온다

ReadLine                   =>파일에서 한라인을 읽어온다

ReadAll                      =>파일에서 모든 텍스트를 읽어온다

Skip(i)                       =>파일에서 i개 만큼 문자를 건너뛴다

SkipLine                    =>파일에서 읽어올때 라인하나를 건너뛴다.

원본 링크 : http://marga.tistory.com/214

+ Recent posts