Avatar billede koonz Nybegynder
24. marts 2008 - 13:34 Der er 16 kommentarer og
1 løsning

Liste filer i datorækkefølge

Hej Folks
Jeg er ikke nogen ørn i ASP, men jeg har brug for en side på mit site der kan liste de filer der er placeret i samme folder (og kun dem), som ASP filen. Helst efter dato, med den seneste øverst.
Brugeren skal så kunne downloade den pågældende fil, ved at klikke på den.

Hvis i kender en sample / freeware kode eller lign der fungerer med ikoner (pdf, zip, giv, osv) ville det selvfølgelig være helt optimalt.

Et alternertiv kunne være at oprette dem i en SQL database, men jeg vil gerne have så lidt arbejde som muligt.
Avatar billede thesurfer Nybegynder
24. marts 2008 - 13:56 #1
Avatar billede koonz Nybegynder
24. marts 2008 - 19:46 #2
Det lige hvad jeg skal bruge, men jeg får fejl i line 36.....

With rsFSO.Fields
Avatar billede koonz Nybegynder
24. marts 2008 - 19:47 #3
How....
Fejlen lyder
"Error Type:
Sun ONE ASP VBScript compilation (0x800A03F6)
Expected 'End'"

Den kan jeg sku ikke lige greje
Avatar billede koonz Nybegynder
24. marts 2008 - 20:27 #4
Lavede det om til:
With rsFSO
    .Fields.Append "Name", adVarChar, 200
    .Fields.Append "Type", adVarChar, 200
    .Fields.Append "DateCreated", adDate
    .Fields.Append "DateLastAccessed", adDate
    .Fields.Append "DateLastModified", adDate
    .Fields.Append "Size", adInteger
    .Fields.Append "TotalFileCount", adInteger
  End With
  rsFSO.Open()

Nu får jeg ikke fejl på syntax, men på 'append' som den siger object ikke understøtter...?
Avatar billede koonz Nybegynder
24. marts 2008 - 20:45 #5
Hele koden...

<%
'**********
'kc_fsoFiles
'Purpose:
' 1. To create a recordset using the FSO object and ADODB
' 2. Allows you to exclude files from the recordset if needed
'Use:
' 1. Call the function when you're ready to open the recordset
' and output it onto the page.
' example:
' Dim rsFSO, strPath
' strPath = Server.MapPath("\PlayGround\FSO\Stuff\")
' Set rsFSO = kc_fsoFiles(strPath, "_")
' The "_" will exclude all files beginning with
' an underscore
'**********
Function kc_fsoFiles(theFolder, Exclude)
Dim rsFSO, objFSO, objFolder, File
  Const adInteger = 3
  Const adDate = 7
  Const adVarChar = 200
 
  'create an ADODB.Recordset and call it rsFSO
  Set rsFSO = Server.CreateObject("ADODB.Recordset")
 
  'Open the FSO object
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
 
  'go get the folder to output it's contents
  Set objFolder = objFSO.GetFolder(theFolder)
 
  'Now get rid of the objFSO since we're done with it.
  Set objFSO = Nothing
 
  'create the various rows of the recordset
  With rsFSO
    .Fields.Append "Name", adVarChar, 200
    .Fields.Append "Type", adVarChar, 200
    .Fields.Append "DateCreated", adDate
    .Fields.Append "DateLastAccessed", adDate
    .Fields.Append "DateLastModified", adDate
    .Fields.Append "Size", adInteger
    .Fields.Append "TotalFileCount", adInteger
  End With
  rsFSO.Open()
   
  'Now let's find all the files in the folder
  For Each File In objFolder.Files
   
    'hide any file that begins with the character to exclude
    If (Left(File.Name, 1)) <> Exclude Then
      rsFSO.AddNew
      rsFSO("Name") = File.Name
      rsFSO("Type") = File.Type
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If

  Next
   
  'And finally, let's declare how we want the files
  'sorted on the page. In this example, we are sorting
  'by File Type in descending order,
  'then by Name in an ascending order.
  rsFSO.Sort = "Type DESC, Size ASC "

  'Now get out of the objFolder since we're done with it.
  Set objFolder = Nothing

  'now make sure we are at the beginning of the recordset
  'not necessarily needed, but let's do it just to be sure.
  rsFSO.MoveFirst()
  Set kc_fsoFiles = rsFSO
   
End Function

'Now let's call the function and open the recordset on the page
'the folder we will be displaying
Dim strFolder : strFolder = Server.MapPath("\Opslagstavle\")

'the actual recordset we will be creating with the kc_fsoFiles function
Dim rsFSO 'now let's call the function and open the recordset

'we will exclude all files beginning with a "_"
Set rsFSO = kc_fsoFiles(strFolder, "_")

'now we'll create a loop and start displaying the folder
'contents with our recordset. Of course, this is just a
'simple example and not very well formatted, i.e., not in
'a table, but it gets the point across on how you can
'ouput the recordset on the page.
  While Not rsFSO.EOF
%>
    <p><%= rsFSO("Name").Value %> | <%= rsFSO("Type").Value %></p>
<%
  'and let's move to the next record
    rsFso.MoveNext()
  Wend
 
  'finally, close out the recordset
  rsFSO.close()
  Set rsFSO = Nothing
%>


Og fejlen

Error Type:
Sun ONE ASP VBScript runtime (0x800A01B6)
Object does not support this property or method: 'Append'
/Opslagstavle/Opslagstavle.asp, line 37
Avatar billede koonz Nybegynder
24. marts 2008 - 20:55 #6
Det er vel egentlig mest fair at give point og starte et nyt spg.

Hvis du laver et svar får du point.
Avatar billede thesurfer Nybegynder
25. marts 2008 - 00:14 #7
Jeg har lige lavet noget kode, der:

1) viser et billede for at indikerer hvilken type. Billedet indeholder f.eks. teksten "ASP", "PHP", "PDF", "ZIP", osv.. Billeder placeres i en mappe der hedder "gfx", som placeres i mappen med ASP-filen der skaber oversigten. Billederne, som er af typen GIF, skal hedde f.eks. "pdf.gif", "zip.gif", osv.. Jeg har sat ikon størrelsen til 16x16 pixels, som det fremgår af følgende: width:16px;height:16px;

2) laver filnavnet om til et link, så man kan downloade filen.

Jeg har tilføjet lidt til koden fra http://www.roubaixinteractive.com/PlayGround/FSO/Sort_Folder_Contents.asp

Test denne kode, og fortæl hvad der sker:

<%
Function icon(filetype)
Dim r
r = "gfx/space.gif" ' tomt/gennemsigtigt billede
Dim fso
Set fso = server.CreateObject("scripting.filesystemobject")
If fso.fileexists(server.mappath("./gfx/" & filetype & ".gif")) = True Then r = "gfx/" & filetype & ".gif"
Set fso = Nothing
icon = r
End Function

'**********
'kc_fsoFiles
'Purpose:
' 1. To create a recordset using the FSO object and ADODB
' 2. Allows you to exclude files from the recordset if needed
'Use:
' 1. Call the function when you're ready to open the recordset
' and output it onto the page.
' example:
' Dim rsFSO, strPath
' strPath = Server.MapPath("\PlayGround\FSO\Stuff\")
' Set rsFSO = kc_fsoFiles(strPath, "_")
' The "_" will exclude all files beginning with
' an underscore
'**********
Function kc_fsoFiles(theFolder, Exclude)
Dim rsFSO, objFSO, objFolder, File
  Const adInteger = 3
  Const adDate = 7
  Const adVarChar = 200
 
  'create an ADODB.Recordset and call it rsFSO
  Set rsFSO = Server.CreateObject("ADODB.Recordset")
 
  'Open the FSO object
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
 
  'go get the folder to output it's contents
  Set objFolder = objFSO.GetFolder(theFolder)
 
  'Now get rid of the objFSO since we're done with it.
  Set objFSO = Nothing
 
  'create the various rows of the recordset
  With rsFSO.Fields
    .Append "Name", adVarChar, 200
    .Append "Type", adVarChar, 200
    .Append "DateCreated", adDate
    .Append "DateLastAccessed", adDate
    .Append "DateLastModified", adDate
    .Append "Size", adInteger
    .Append "TotalFileCount", adInteger
    .Append "Extension", adVarChar, 10 ' new!
  End With
  rsFSO.Open()
   
  'Now let's find all the files in the folder
  For Each File In objFolder.Files
   
    'hide any file that begins with the character to exclude
    If (Left(File.Name, 1)) <> Exclude Then
      rsFSO.AddNew
      rsFSO("Name") = File.Name
      rsFSO("Type") = File.Type
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO("Extension") = Mid(file.name, InstrRev(file.name, ".") + 1) ' new!
      rsFSO.Update
    End If

  Next
   
  'And finally, let's declare how we want the files
  'sorted on the page. In this example, we are sorting
  'by File Type in descending order,
  'then by Name in an ascending order.
  rsFSO.Sort = "DateCreated DESC, Size ASC "

  'Now get out of the objFolder since we're done with it.
  Set objFolder = Nothing

  'now make sure we are at the beginning of the recordset
  'not necessarily needed, but let's do it just to be sure.
  rsFSO.MoveFirst()
  Set kc_fsoFiles = rsFSO
   
End Function

'Now let's call the function and open the recordset on the page
'the folder we will be displaying
Dim strFolder : strFolder = Server.MapPath(".")

'the actual recordset we will be creating with the kc_fsoFiles function
Dim rsFSO 'now let's call the function and open the recordset

'we will exclude all files beginning with a "_"
Set rsFSO = kc_fsoFiles(strFolder, "_")

'now we'll create a loop and start displaying the folder
'contents with our recordset. Of course, this is just a
'simple example and not very well formatted, i.e., not in
'a table, but it gets the point across on how you can
'ouput the recordset on the page.
  While Not rsFSO.EOF
%>
    <p><a href="<%= rsFSO("Name").Value %>"><img src="<%=icon(rsFSO("Extension"))%>" style="width:16px;height:16px;vertical-align:bottom;">&nbsp;<%= rsFSO("Name").Value %></a></p>
<%
  'and let's move to the next record
    rsFso.MoveNext()
  Wend
 
  'finally, close out the recordset
  rsFSO.close()
  Set rsFSO = Nothing
%>
Avatar billede thesurfer Nybegynder
25. marts 2008 - 00:17 #8
Jeg kan se at du har oprettet spørgsmålet http://www.eksperten.dk/spm/825013 .. men se lige om mit forrige indlæg (25/03-2008 00:14:43) virker.. hvis det gør, luk det andet spørgsmål..

Jeg lagde mærke til, at din side er hosted på en Linux server, og udbyder ASP via Sun ONE ASP. Det skal lige siges at Sun ONE ASP ikke understøtter 100% af det oprindelige ASP.. Der er (så vidt jeg ved) ting der mangler i Sun ONE ASP, som findes i ASP.. Det kan være at denne ".Append" metode af en af disse ting..
Avatar billede koonz Nybegynder
25. marts 2008 - 21:11 #9
hmnn....Det er stadig samme fejl. Det kunn tyde på der er noget omkring den append kommando.

Error Type:
Sun ONE ASP VBScript compilation (0x800A03F6)
Expected 'End'
/Opslagstavle/Opslagstavle.asp, line 46, column 11

Linie 46 er :
With rsFSO.Fields
Avatar billede koonz Nybegynder
25. marts 2008 - 21:15 #10
Hmmn....Jeg tror du har ret med hensyn til SUN og append kommando
http://forum.java.sun.com/thread.jspa?threadID=5024754&tstart=495
Avatar billede koonz Nybegynder
25. marts 2008 - 21:25 #11
Jeg har lige testet det på et andet domæne jeg har - der kører det fint, så må jeg jo bare linke dertil istedet
Avatar billede thesurfer Nybegynder
25. marts 2008 - 21:46 #12
Du snupper bare pointsne igen.. :-)
Avatar billede koonz Nybegynder
25. marts 2008 - 22:26 #13
Ej, du skal da have dem, med alt det du har hjulpet :)
Smid lige et svar.

Resultat kan ses her www.stevnscykelmotion.dk (Midt på siden)

Jeg droppede ideen med billeder
Avatar billede koonz Nybegynder
26. marts 2008 - 17:29 #14
hmnn.....Hvis jeg slår over på en anden side (tab), forsvinder mit view i min iframe. Det SKAL bare ikke lykkedes - hehe
Avatar billede thesurfer Nybegynder
27. marts 2008 - 01:41 #15
Jeg forstod ikke helt det sidste indlæg (26/03-2008 17:29:57), men her er et svar :-)
Avatar billede koonz Nybegynder
27. marts 2008 - 13:52 #16
Jeg tror det er noget i min browser på Vista. Jeg har ikke set det på andre computere.
Når jeg åbner en ny tab i min browser, og sufer rundt på denne tab, og jeg efterfølgende hopper tilbage på den første tab (Kringlet ikke, hehe) så står der ikke noget i min iframe....
Avatar billede thesurfer Nybegynder
27. marts 2008 - 19:14 #17
Ahh.. mystisk.. har aldrig hørt om det..

- Takker for points.
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