Avatar billede west Nybegynder
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"
Avatar billede eagleeye Praktikant
05. juni 2002 - 23:32 #1
Her er et eks med forskellige muligher for sortering:

http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=118
Avatar billede eagleeye Praktikant
05. juni 2002 - 23:34 #2
Og så den helt simple:

Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

'Get the folder object associated with the directory
Dim objFolder
Set objFolder = objFSO.GetFolder("C:\InetPub\wwwroot\eksempler")

Response.Write "The files found in " & objFolder.Name & ":<br>"

'Loop through the Files collection
Dim objFile
For Each objFile in objFolder.Files
  Response.Write objFile.Name & "<br>"
Next

'Clean up!
Set objFolder = Nothing
Set objFile = Nothing
Set objFSO = Nothing
Avatar billede tmceu Praktikant
05. juni 2002 - 23:35 #3
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>
Avatar billede curriculum Nybegynder
05. juni 2002 - 23:37 #4
Jeg har ikke testet denne kode ..

Set objFolder = (Server.MapPath("\eksempler")
Set objFiles = objFolder.Files
FOR EACH FILE IN objFolder.Files
  Response.Write strFileName = File.Name
NEXT
Avatar billede west Nybegynder
06. juni 2002 - 00:02 #5
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
Avatar billede eagleeye Praktikant
06. juni 2002 - 00:05 #6
Ok, tak :) et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester