|
|
|
|
|
Dicas
|
|
ASP - Active Server Page (Miscelâneas)
|
|
|
Título da Dica: Listar arquivos de diretórios.
|
|
|
|
Postada em 25/8/2004 por vilmarbr
Listar arquivos de diretórios.
Você pode usar o código e modificá-lo conforme deseje. Este código usa os objetos Scripting.FileSystemObject e WScript.Shell para poder verificar o que há em determinado diretório, criar um arquivo de listagem temporário usando-o para criar um array com os nomes de arquivos com extensões desejadas e depois monta as linhas e células da tabela como cores alternadas. Pesquise mais estes 2 objetos citados e melhore a utilidade deste código.
Código criado por Vilmar Brazão de Oliveira.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <% Option Explicit Response.Expires = -1 %> <html> <head> <title>Listar arquivos de diretório</title> <style type="text/css"> <!-- td { font-size: 12px; font-weight: bold; font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000; } a:link { font-size: 12px; font-weight: bold; font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000; text-decoration: none; } a:visited { font-size: 12px; font-weight: bold; font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000; text-decoration: none; } a:active { font-size: 12px; font-weight: bold; font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000; text-decoration: none; } a:hover { font-size: 12px; font-weight: bold; font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000; text-decoration: underline; } --> </style> </head>
<body> <table width="100%" border="0" cellpadding="0" cellspacing="2"> <tr> <td align="center" colspan="2">Listar arquivos de diretório</td> </tr> <tr> <td align="center" colspan="2"> </td> </tr> <tr> <td align="center" width="50%" bgcolor="#CCCCCC">Arquivo</td> <td align="center" width="50%" bgcolor="#CCCCCC">Atualizado</td> </tr> <tr> <% Dim strCaminho,strSaida '»»Caminho do arquivo e texto de saída do objeto textstream. Dim objWshell,objFSO,objFSOTexto,objFSOArquivo '»»Objetos instanciados na memória. Dim datArquivo '»»Data da última modificação do arquivo. Dim strDescricao,strCor '»»Nome do arquivo e cor das células. Dim MeuArray,intI '»»Usadas na montagem do array que pega os nomes dos arquivos.
strCaminho = Server.MapPath("meus_arquivos") strCor = "#FFFFFF"
'»»INÍCIO: Procedimento p/ montar as células da tabela. Sub MontarCelulas() If strCor = "#FFFFFF" Then strCor = "#F3F3F3" Else strCor = "#FFFFFF" End If Response.Write "<td align='center' bgcolor='" & strCor & "'><a href='meus_arquivos/" & strDescricao & "'>" & strDescricao & "</a></td>" & vbCrLf Response.Write "<td align='center' bgcolor='" & strCor & "'>" & datArquivo & "</td></tr><tr>" & vbCrLf End Sub '»»FIM: Procedimento p/ montar as células da tabela.
'»»INÍCIO: Rotina p/ executar comandos ms-dos. Set objWshell = Server.CreateObject("WScript.Shell") '»»Comando DIR. objWshell.Run "%COMSPEC% /C dir " & strCaminho & " > " & strCaminho & "dir.txt", 0, TRUE '»»FIM: Rotina p/ executar comandos ms-dos.
'»»INÍCIO: Rotina p/ abrir objeto de texto com resultados de comandos e mostrar na tela. Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Set objFSOTexto = objFSO.OpenTextFile(strCaminho & "dir.txt", 1, TRUE) strSaida = objFSOTexto.ReadAll
MeuArray = Split(strSaida," ",-1,1) '»»Cria uma array com o objeto de textstream.
For intI = 0 to UBound(MeuArray) strDescricao = MeuArray(intI)
If InStr(strDescricao,".htm") then strDescricao = Mid(strDescricao,1,InStr(strDescricao,".htm") + 3) Set objFSOArquivo = objFSO.GetFile(strCaminho & "" & strDescricao) datArquivo = objFSOArquivo.DateMaxModified Call MontarCelulas '»»Procedimento p/ montar as células da tabela. ElseIf InStr(strDescricao,".doc") then strDescricao = Mid(strDescricao,1,InStr(strDescricao,".doc") + 3) Call MontarCelulas '»»Procedimento p/ montar as células da tabela. ElseIf InStr(strDescricao,".rtf") then strDescricao = Mid(strDescricao,1,InStr(strDescricao,".rtf") + 3) Call MontarCelulas '»»Procedimento p/ montar as células da tabela. End If Next %> </tr> </table>
<% '»»Rotina p/ apagar arquivo temporário dir.txt. objFSOTexto.Close '»»Fecha o objeto de textstream p/ poder apagar o arquivo físico que foi criado e aberto. objWshell.Run "%COMSPEC% /C del " & strCaminho & "dir.txt", 0, TRUE 'objFSO.DeleteFile(strCaminho & "dir.txt") '»»Ou apague o arquivo desta forma com FSO.
Set objFSOTexto = nothing Set objFSO = nothing Set objWshell = nothing '»»FIM: Rotina p/ abrir objeto de texto com resultados de comandos e mostrar na tela. %>
</body> </html>
|
|
|
|
|