<% '8***********************************************8 ' Jason Withrow - For ASP101 July 2001 ' Page Builds List of Files in Specific Folder ' With Links to Download files ' ' jwithrow@mediaone.net '8***********************************************8 Dim strThisPage strThisPage = Request.ServerVariables("SCRIPT_NAME") strThisPage = Right(strThisPage, Len(strThisPage) - 1) 'Path To Folder That holds Files To Download Here 'Default is the current Folder FILE_FOLDER = StripFileName(Request.ServerVariables("PATH_TRANSLATED")) 'Constants Const adVarChar = 200 Const adInteger = 3 Const adDate = 7 Const adFileTime = 64 Const adNumeric = 131 %> File Download List For <%= Date() %> <% strSortHeader = Request.QueryString("sort") IF strSortHeader = "" Then Call GetAllFiles("") Else Call GetAllFiles(strSortHeader) End IF %>
File Name File Type File Size File Path Last Modified
<% '8*****************************************8 ' The next release will have sort routines ' That is why the column headers are links ' They are hooks to add the sorts into. '8****************************************8 Sub GetAllFiles(strSortBy) Dim oFS, oFolder, oFile Set oFS = Server.CreateObject("Scripting.FileSystemObject") 'Set Folder Object To Proper File Directory Set oFolder = oFS.getFolder(FILE_FOLDER) Dim intCounter intCounter = 0 IF strSortBy = "" Then 'UnSorted (default) Dim FileArray() ReDim Preserve FileArray(oFolder.Files.Count, 5) For Each oFile in oFolder.Files strFileName = oFile.Name strFileType = oFile.Type if strFileType <> "ASP File" then strFileSize = oFile.Size strFilePath = oFile.Path strFileDtMod = oFile.DateLastModified FileArray(intCounter, 0) = strFileName FileArray(intCounter, 1) = "" & strFileName & "" FileArray(intCounter, 2) = strFileType FileArray(intCounter, 3) = strFileSize FileArray(intCounter, 4) = strFilePath FileArray(intCounter, 5) = strFileDtMod intCounter = (intCounter + 1) end if Next intRows = uBound(FileArray, 1) intCols = uBound(FileArray, 2) For x = 0 To intRows -1 Echo("") For z = 0 To intCols If z > 0 Then BuildTableCol(FileArray(x, z)) End IF Next Echo("") Next Else 'Sorted List Set oRS = Server.CreateObject("ADODB.Recordset") oRS.Fields.Append "Name", adVarChar, 500 oRS.Fields.Append "Type", adVarChar, 500 oRS.Fields.Append "Size", adInteger oRS.Fields.Append "Path", adVarChar, 500 oRS.Fields.Append "Date", adFileTime oRS.Open For Each oFile in oFolder.Files strFileName = oFile.Name strFileType = oFile.Type strFileSize = oFile.Size strFilePath = oFile.Path strFileDtMod = oFile.DateLastModified oRS.AddNew oRS.Fields("Name").Value = "" & strFileName & "" oRS.Fields("Type").Value = strFileType oRS.Fields("Size").Value = strFileSize oRS.Fields("Path").Value = strFilePath oRS.Fields("Date").Value = strFileDtMod Next oRS.Sort = strSortBy & " ASC" Do While Not oRS.EOF Echo("") BuildTableCol(oRS("Name")) BuildTableCol(oRS("Type")) BuildTableCol(oRS("Size")) BuildTableCol(oRS("Path")) BuildTableCol(oRS("Date")) Echo("") oRS.MoveNext Loop oRS.Close Set oRS = Nothing End IF 'EchoB("" & oFolder.Files.Count & " Files Available") With Response .Write "
" & CRLF .Write " Return to Home Page" End With Cleanup oFile Cleanup oFolder Cleanup oFS End Sub Function Echo(str) Echo = Response.Write(str & vbCrLf) End Function Function EchoB(str) EchoB = Response.Write(str & "
" & vbCrLf) End Function Sub Cleanup(obj) IF isObject(obj) Then Set obj = Nothing End IF End Sub Function StripFileName(strFile) StripFileName = Left(strFile, inStrRev(strFile, "\")) End Function Sub BuildTableCol(strData) Echo("" & strData & "") End Sub 'Not implemented Sub BuildTableRow(arrData) Dim intCols intCols = uBound(arrData) For y = 0 To intCols Echo("" & arrData(y) & "") Next End Sub %>