<%@ Language="Vbscript" %> Choose your destination...
Welcome!
<% Function CheckFileExists(sFileName) Dim FileSystemObject Set FileSystemObject = Server.CreateObject("Scripting.FileSystemObject") If (FileSystemObject.FileExists(sFileName)) Then CheckFileExists = True Else CheckFileExists = False End If Set FileSystemObject = Nothing End Function ' This function takes a filename and returns the appropriate image for ' that file type based on it's extension. If you pass it "dir", it assumes ' that the corresponding item is a directory and shows the folder icon. Function ShowImageForType(strName) Dim strTemp ' Set our working string to the one passed in strTemp = strName ' If it's not a directory, get the extension and set it to strTemp ' If it is a directory, then we already have the correct value If strTemp <> "dir" Then strTemp = LCase(Right(strTemp, Len(strTemp) - InStrRev(strTemp, ".", -1, 1))) End If ' Debugging line used to perfect that above string parser 'Response.Write strTemp ' Set the part of the image file name that's unique to the type of file ' to it's correct value and set this to strTemp. (yet another use of it!) Select Case strTemp Case "asp" strTemp = "asp" Case "dir" strTemp = "dir" Case "htm", "html" strTemp = "htm" Case "gif", "jpg" strTemp = "img" Case "txt" strTemp = "txt" Case Else strTemp = "misc" End Select ' All our logic is done... build the IMG Tag for display to the browser ' Place it into... where else... strTemp! ' My images are all GIFs and all start with "dir_" for my own sanity. ' They end with one of the values set in the select statement above. strTemp = "" ' Set return value and exit function ShowImageForType = strTemp End Function 'That's it for functions on this one! %> <%' Now to the Runtime code: Dim strPath 'Path of directory to show Dim objFSO 'FileSystemObject variable Dim objFolder 'Folder variable Dim objItem 'Variable used to loop through the contents of the folder ' You could just as easily read this from some sort of input, but I don't ' need you guys and gals roaming around our server so I've hard coded it to ' a directory I set up to illustrate the sample. ' NOTE: As currently implemented, this needs to end with the / strPath = "/fette/" ' Create our FSO Set objFSO = Server.CreateObject("Scripting.FileSystemObject") ' Get a handle on our folder Set objFolder = objFSO.GetFolder(Server.MapPath(strPath)) %>
<% ' First I deal with any subdirectories. I just display them and when you ' click you go to them via plain HTTP. You might want to loop them back ' through this file once you've set it up to take a path as input. It seems ' like the logical thing to do to me at least! For Each objItem In objFolder.SubFolders ' Deal with the stupid VTI's that keep giving our visitors 404's If InStr(1, objItem, "_vti", 1) = 0 Then %> <% End If Next 'objItem ' All done! Kill off our object variables. Set objItem = Nothing Set objFolder = Nothing Set objFSO = Nothing ' Oops... I almost forgot to close up the table. IE will forgive you, ' but Netscape will catch you on this error - AS IT SHOULD! ' Ok, so I'm a little odd being a Microsoft supporter and yet I still ' use Netscapes's browser... I just like it better... so sue me! ' ' I probably shouldn't say that too loudly... ' ...you never know what the next lawsuit will be! %>
Choose your destination...
<% If CheckFileExists("C:\Inetpub\wwwroot\fette\" &objItem.Name & "/logo.gif") Then Response.Write( ShowImageForType(strPath & objItem.Name )) Else Response.Write("") End If %>  <%= objItem.Name %>

Valid XHTML 1.0! Valid CSS!