Está usted en Indice > Construcción > Lenguajes > ASP > Lecciones y Paso a Paso > Muestra el contenido de una carpeta dinámicamente en ASP.
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Muestra el contenido de una carpeta dinámicamente en ASP.

En este tutorial vemos como mostrar el contenido de una carpeta en ASP.
<!DOCTYPE html Public "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE>Directory listing of MP3s</TITLE>
    </HEAD>
    <BODY bgcolor="#000000" text="#400080" link="#400080" vlink="#FFFF80">
    <%
    Dim dirname, mypath, fso, folder, filez, FileCount
    dirname = "../mp3s/"
    mypath = "../mp3s/"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(server.mappath(dirname))
    Set filez = folder.Files
    FileCount = folder.Files.Count
    ' This function takes a filename and ret
    '     urns 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 direc
    '     tory 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
     
     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 "mp3"
       strTemp = "MP3"
      Case "mp2"
       strTemp = "MP3"
      Case "wav"
       strTemp = "MP3"
      Case "aiff"
       strTemp = "MP3"
      Case "html"
       strTemp = "htm"
      Case "m3u"
       strTemp = "MP3"
      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 = "<IMG SRC=""images/dir_" & strTemp & ".gif"" WIDTH=16 HEIGHT=16 BORDER=0>"
     ' 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 fro
    '     m 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 n
    '     eeds to end with the /
    strPath = mypath
    ' Create our FSO
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    ' Get a handle on our folder
    Set objFolder = objFSO.GetFolder(Server.MapPath(strPath))
    ' Show a little description line and the
    '     title row of our table
    %>
    <CENTER><FONT face="Arial" color="#9690CC">
    <%= FileCount %> Contents of <B><I>
    <%= strPath %></I> Not Counting Any Folders</B></CENTER></FONT><BR><BR>
    <TABLE align="center" border="5" bordercolor="#010194" cellspacing="0" cellpadding="2">
     <TR bgcolor="#010194">
      <TD align="CENTER"><FONT face="Arial" color="#FFFFFF"><B>File Name:</B></FONT>
      </TD>
      <TD align="CENTER"><FONT face="Arial" color="#FFFFFF"><B>File Size (MB):</B></FONT>
      </TD>
      <TD align="CENTER"><FONT face="Arial" color="#FFFFFF"><B>Date Created:</B></FONT>
      </TD>
      <TD align="CENTER"><FONT face="Arial" color="#FFFFFF"><B>File Type:</B></FONT>
      </TD>
     </TR>
     <%
    ' First I deal with any subdirectories.
    '     I just display them and when you
    ' click you go to them via plain HTTP. Y
    '     ou might want to loop them back
    ' through this file once you've set it u
    '     p to take a path as input.
    For Each objItem In objFolder.SubFolders
     ' Deal With the bad VTI's that keep giving our visitors 404's
     
     if InStr(1, objItem, "_vti", 1) = 0 Then
     %>
     
     <TR bgcolor="#87BCFE">
      <TD align="left">
       <%= ShowImageForType("dir") %> <A href="<%= strPath & objItem.Name %>">
       <%= objItem.Name %></A>
      </TD>
      <TD align="right">
       <%= objItem.Size/1000000 'I used this To display the file size In MB, you can Set it to default
       %>
       
      </TD>
      <TD align="left">
       <%= objItem.DateCreated 'date of creation
       %>
      </TD>
      <TD align="left">
       <%= objItem.Type 'the type of file
       %>
      </TD>
     </TR>
     <%
     End if
    Next 'objItem
    ' Now that I've done the SubFolders, do
    '     the files!
    For Each objItem In objFolder.Files
    %>
     <TR bgcolor="#87BCFE">
      <TD align="left">
       <%= ShowImageForType(objItem.Name) %> <A href="<%= strPath & objItem.Name %>">
       <%= objItem.Name %></A>
      </TD>
      <TD align="right">
       <%= objItem.Size/1000000 %>
      </TD>
      <TD align="left">
       <%= objItem.DateCreated %>
      </TD>
      <TD align="left">
       <%= objItem.Type %>
      </TD>
     </TR>
     <%
    Next 'objItem
    Set objItem = Nothing
    Set objFolder = Nothing
    ' All done! Kill off the object variable
    '     s.
    Set objFSO = Nothing
    %>
    </TABLE>
    </BODY>
    </HTML>



Usuarios que han visto este tema también han visto...

- Comenta tu código en ASP
- Valor absoluto de un número
- Validar e-mail
- Evitar la Caché del Navegador con ASP
- Como poner Wiewstate para optimizar Google


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 25-05-2012 a las 10:49:25