05. juni 2002 - 23:29
Der er
5 kommentarer og
1 løsning
FileSystemObjekt - hvordan ?
Hvordan laver jeg en liste over alle filer som ligger i en mappe på min server ?
mappen hedder "eksempler" og jeg skal bruge en liste til en AspMail med ALLE filnavnene som ligger i "eksempler"
Prøv dette script. Den lister alle filer incl. underfoldere. Du skal ændre parametren directory til din start folder, så lister den alt derunder.
<%@ Language=VBScript %>
<HTML>
<HEAD>
<TITLE>List Files Using ASP</TITLE>
</HEAD>
<BODY>
<%
Dim filecounter, searchtext, directory
Dim fcount, fsize
filecounter = 0
directory = "c:\inetpub\wwwroot\hifi\marked" ' start path
response.write "<TABLE border=0 width='100%'>"
response.write "<TR><TH ALIGN='LEFT' width='60%'>File Name</TH><TH ALIGN='LEFT' width='10%'>File Size</TH><TH ALIGN='LEFT' width='30%'>Date Modified</TH></TR>"
Set rs = createobject("adodb.recordset")
rs.fields.append "FilePath",200,255
rs.fields.append "FileName",200,255
rs.fields.append "FileSize",200,255
rs.fields.append "FileDate",7,255
rs.open
Recurse directory
Sub Recurse(Path)
Dim fso, Root, Files, Folders, File, i, FoldersArray(1000)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set Root = fso.getfolder(Path)
Set Files = Root.Files
Set Folders = Root.SubFolders
fcount = 0
For Each Folder In Folders
FoldersArray(i) = Folder.Path
i = i + 1
Next
For Each File In Files
filecounter = filecounter + 1
rs.addnew
rs.fields("FilePath") = Replace(Replace(File.Path, directory, "", 1, -1, 1), "\", "/")
rs.fields("FileName") = File.Name
rs.fields("FileSize") = File.Size
rs.fields("FileDate") = File.DateLastModified
rs.update
rs.Sort = "FilePath ASC, FileName ASC"
Next
For i = 0 To UBound(FoldersArray)
if FoldersArray(i) <> "" Then
Recurse FoldersArray(i)
Else
Exit For
End if
Next
End Sub
if filecounter <> 0 Then
filecounter = 0
Do While Not rs.eof
filecounter = filecounter + 1
response.write "<TR><TD width='50%' valign=top>" & rs.fields("FilePath") & "/" & rs.fields("FileName") & "</TD><TD width='10%' align=right valign=top>"
fsize = CLng(rs.fields("FileSize"))
if fsize >= 0 And fsize <= 999 Then
fnumber = FormatNumber(fsize,0) & " Bytes"
End if
if fsize >= 1000 And fsize <= 999999 Then
fnumber = FormatNumber((fsize / 1000),2) & " KB"
End if
if fsize >= 1000000 Then
fnumber = FormatNumber((fsize / 1000000),2) & " MB"
End if
response.write fnumber & "</TD><TD width='30%' align='right'>" & rs.fields("FileDate") & "</TD></TR>"
rs.movenext
Loop
response.write "</TABLE>"
End if
%>
</BODY>
</HTML>
tak for den hurtige hjælp
tmceu -> din virker fint, men den er alt for lang, og tager for meget med, men tak alligevel
eagleeye -> FINT den lille virker fint, og gør præsis hvad jeg ønsker, MEN du har ikke svaret, så jeg kan ikke acceptere dit svar ?
vil du gøre dette ?
curriculum -> jeg kan ikke få din til at virke, men tak for forsøget alligevel