Avatar billede hundevennen Nybegynder
12. juli 2007 - 09:43 Der er 32 kommentarer og
1 løsning

sidste nye fil fra flere biblioteker

jeg vil gerne trække de sidte nye filer fra f.eks 4 forskellige biblioteker ud på en liste - kan man det??
Avatar billede fennec Nybegynder
12. juli 2007 - 09:48 #1
Er det f.eks de 2 nye filer fra hver mappe, eller bare de 10 nyeste filer, som evt alle kommer fra samme mappe?
Avatar billede hundevennen Nybegynder
12. juli 2007 - 10:01 #2
det skal være den nyeste fil fra flere forskellige mapper
Avatar billede fennec Nybegynder
12. juli 2007 - 10:08 #3
Med koden fra tidligere:
http://www.eksperten.dk/spm/787007

Skal du bare indsætte flere rækker i recordsettet:
  Set objFolder = objFSO.GetFolder(server.mapPath("\PlayGround\FSO\stuff\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("\PlayGround\FSO\OtherStuff\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("\PlayGround\FSO\WayOtherStuff\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
Avatar billede fennec Nybegynder
12. juli 2007 - 10:10 #4
Det kunne så med fordel smides i en funktione i stedet, så det ikke fylder så meget. Du skal måske også have gemt en sti i recordsettet, så du kan se hvor de enkelte filer kommer fra.
Avatar billede hundevennen Nybegynder
12. juli 2007 - 10:19 #5
jeg prøver
Avatar billede hundevennen Nybegynder
12. juli 2007 - 11:30 #6
jeg får en fejl fra linie 60 den der siger rsFso.AddNew - Operation is not allowed when the object is closed
Avatar billede fennec Nybegynder
12. juli 2007 - 12:34 #7
Hvordan ser din kode ud?
Avatar billede hundevennen Nybegynder
12. juli 2007 - 14:51 #8
<%
'**********
'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(server.mapPath("\.\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("\bib1\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("\bbib2\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
 
  '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
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      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 = "DateCreated DESC "
  rsFSO.Filter = "Type <> 'zip' and Type <> 'asp'"

  '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.
  count = 0
  While Not rsFSO.EOF and count < 10
%>
    <p><%= rsFSO("Name").Value %> | <%= rsFSO("Type").Value %></p>
<%
  'and let's move to the next record
    rsFso.MoveNext()
    count = count + 1
  Wend
 
  'finally, close out the recordset
  rsFSO.close()
  Set rsFSO = Nothing
%>
Avatar billede fennec Nybegynder
12. juli 2007 - 14:58 #9
Du skal have det ind ved den eksisterende løkke:

<!--#include file="../start.asp"-->
<!--#include file="../usefullfunk.asp"-->
<%
dim sID, sort
sID = cLng(rq("schemaID"))
scriptname = scriptname &"?schemaID="& sID
if mode = "save" then
    oConn.execute("insert into QuestionScemaField(schemaID,fieldType,name,helpText,sort) values("& sID &","& DBRFNum("fieldType") &",'"& DBRFText("name") &"','"& DBRFText("help") &"','"& DBNum(sort) &"')")
    response.redirect(scriptname)
end if
%>
<body>
<!--#include file="top.asp"-->
<form name="myForm" method="post" action="<%= scriptname %>&amp;mode=save">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
    <td>Field type:</td>
    <td>
        <select name="fieldType">
<%        set oRs = oConn.execute("select * from QuestionScemaFieldType order by sort")
        while not oRs.eof
            Response.write "<option value="""& oRs("id") &""">"& oRs("name") &"</option>"
            oRs.MoveNext
        wend%>
        </select>
    </td>
</tr>
<tr>
    <td>Name:</td>
    <td><input type="Text" name="name" value=""></td>
</tr>
<tr>
    <td>Help text:</td>
    <td><input type="Text" size="60" name="help" value=""></td>
</tr>
<tr>
    <td colspan="2">
        <input type="Submit" value="Add field">
        <input type="Button" value="Back" onClick="location.href='QuestionSchema.asp';return false;">
    </td>
</tr>
</table>
</form>
<br>
<table border="0" cellspacing="0" cellpadding="2">
<tr>
    <td>Fields</td>
    <td>Sort</td>
</tr>
<%

%>
</table>
<!--#include file="../bottom.asp"-->

</body>
</html>
<!--#include file="../end.asp"-->



<%
'**********
'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")
 
 
  '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
  End With
  rsFSO.Open()
   
  'go get the folder to output it's contents
  Set objFolder = objFSO.GetFolder(server.mapPath("\.\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("\bib1\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("\bbib2\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      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 = "DateCreated DESC "
  rsFSO.Filter = "Type <> 'zip' and Type <> 'asp'"

  '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.
  count = 0
  While Not rsFSO.EOF and count < 10
%>
    <p><%= rsFSO("Name").Value %> | <%= rsFSO("Type").Value %></p>
<%
  'and let's move to the next record
    rsFso.MoveNext()
    count = count + 1
  Wend
 
  'finally, close out the recordset
  rsFSO.close()
  Set rsFSO = Nothing
%>
Avatar billede hundevennen Nybegynder
12. juli 2007 - 15:01 #10
øh du er da vist igang med et andet spm - forstår ikke en skid?
Avatar billede fennec Nybegynder
12. juli 2007 - 15:10 #11
lol. Fik skaset lidt for meget kode ind :o)

<%
'**********
'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")
 
 
  '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
  End With
  rsFSO.Open()
   
  'go get the folder to output it's contents
  Set objFolder = objFSO.GetFolder(server.mapPath("\.\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("\bib1\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("\bbib2\"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      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 = "DateCreated DESC "
  rsFSO.Filter = "Type <> 'zip' and Type <> 'asp'"

  '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.
  count = 0
  While Not rsFSO.EOF and count < 10
%>
    <p><%= rsFSO("Name").Value %> | <%= rsFSO("Type").Value %></p>
<%
  'and let's move to the next record
    rsFso.MoveNext()
    count = count + 1
  Wend
 
  'finally, close out the recordset
  rsFSO.close()
  Set rsFSO = Nothing
%>
Avatar billede hundevennen Nybegynder
13. juli 2007 - 08:46 #12
så langt så godt - nu skal det bare være den nyeste fra hvert bibliotek??
Avatar billede hundevennen Nybegynder
13. juli 2007 - 09:18 #13
jeg tror jeg har løst det - jeg skal bare sætte count til det antal biblioteker jeg henter fra, så bliver de jo sorteret efter dato og henter de sidste 5 filer, - ik?

læg et svar igen igen :-))
Avatar billede fennec Nybegynder
13. juli 2007 - 09:28 #14
Tror jeg misforstod dig tidligere. Jeg hvade forstået det som om det bare var de x nyeste filer. Men du vil have den nyeste fil fra hver mappe. Altså 1 fil fra hver mappe...

Så skal hele koden gentages. Laver lige en funktion i stedet... 2 sek.
Avatar billede hundevennen Nybegynder
13. juli 2007 - 09:35 #15
Nå det dur ikke alligevel - jeg smider lige koden på - i 8 sidste linie hvor jeg laver listen som links fejler koden idet filen her ligger ikke isamme biblioteker som filerne bliver listet fra - hvis du forstår - linket kommer til at være placeringen hvor denne fil ligger plus filnavnet fra et andet bibliotek og så virker linket jo ikke, - vel???
<%
'**********
'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(server.mappath("."))
 
  '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
  End With
  rsFSO.Open()
   
  'go get the folder to output it's contents
  Set objFolder = objFSO.GetFolder(server.mapPath("bib1"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("bib2"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("bib3"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("../analyse/berigelse/Pengeskabstyveri"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("bib4"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  Set objFolder = objFSO.GetFolder(server.mapPath("bib5"))
  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
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      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 = "DateCreated DESC "
  rsFSO.Filter = "Type <> 'zip' and Type <> 'asp' and Type <> 'jpg' and Type <> 'txt' and Type <> 'html'"

  '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.
  count = 0
  While Not rsFSO.EOF and count < 6

  Response.Write "<a href=""" & rsFSO("Name").Value & """ target=_blank>" & left(rsFSO("Name").Value,(len(rsFSO("Name").Value)-4)) & "&nbsp;&nbsp;" & rsFSO("DateCreated").Value & "<br>"

  'and let's move to the next record
    rsFso.MoveNext()
      count = count + 1
  Wend
 
  'finally, close out the recordset
  rsFSO.close()
  Set rsFSO = Nothing
%>
Avatar billede fennec Nybegynder
13. juli 2007 - 09:51 #16
Så har jeg lavet denne funktion. Skulle kunne bruges til næsten alt:

<%
 
function getFilesInArr(fFolder,fArray,fAmount,fFilter,fSort)
Dim rsFSO, objFSO, objFolder, File, fCount
  Const adInteger = 3
  Const adDate = 7
  Const adVarChar = 200
  redim fArray(6,0)
  Set rsFSO = Server.CreateObject("ADODB.Recordset")
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder(server.mapPath(fFolder))
  Set objFSO = Nothing
  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
  End With
  rsFSO.Open()
 
  For Each File In objFolder.Files
    If (Left(File.Name, 1)) <> Exclude Then
      rsFSO.AddNew
      rsFSO("Name") = File.Name
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  if fSort <> "" then
    rsFSO.Sort = fSort
  end if
  if fFilter <> "" then
    rsFSO.Filter = fFilter
  end if
  Set objFolder = Nothing
  rsFSO.MoveFirst()
  fCount = 0
  while not rsFSO.eof and (fCount < fAmount or fAmount=0)
    redim preserve fArray(6,fCount)
    fArray(0,fCount) = rsFSO("name")
    fArray(1,fCount) = rsFSO("Type")
    fArray(2,fCount) = rsFSO("DateCreated")
    fArray(3,fCount) = rsFSO("DateLastAccessed")
    fArray(4,fCount) = rsFSO("DateLastModified")
    fArray(5,fCount) = rsFSO("Size")
    rsFSO.MoveNext
    fCount = fCount + 1
  wend
end function

dim arr

call getFilesInArr("Mappe1", arr, 1, "Type <> 'zip' and Type <> 'asp' and Type <> 'jpg' and Type <> 'txt' and Type <> 'html'", "DateCreated DESC ")
for f=0 to ubound(arr,2)
    Response.write arr(0,f) &"<br>"
next

call getFilesInArr("Mappe2", arr, 1, "Type <> 'zip' and Type <> 'asp' and Type <> 'jpg' and Type <> 'txt' and Type <> 'html'", "DateCreated DESC ")
for f=0 to ubound(arr,2)
    Response.write arr(0,f) &"<br>"
next

%>

Fil data bliver loaded over i et array, som er sendt med som parameter, så man selv kan bestemme hvad det skal hedde. Sortering og filter sendes også med, så man kan bestemme dem. Hvis antalet af filer man vil have tilbage sættes til 0 returneres alle filer.
Avatar billede hundevennen Nybegynder
13. juli 2007 - 10:08 #17
jamen stien til filerne er jo forskellig og hvis man vil lave et link hva så??
Avatar billede fennec Nybegynder
13. juli 2007 - 10:13 #18
Det klare du via udskriften. Der ved du jo hvilken mappe du har hentet:

call getFilesInArr("Mappe2", arr, 1, "Type <> 'zip' and Type <> 'asp' and Type <> 'jpg' and Type <> 'txt' and Type <> 'html'", "DateCreated DESC ")
for f=0 to ubound(arr,2)
    Response.write "<a href=""Mappe2/"& arr(0,f) &""">"& arr(0,f) &"</a><br>"
next
Avatar billede hundevennen Nybegynder
13. juli 2007 - 12:28 #19
jeg er stadig ikke helt med - hvordan får jeg funktionen til at gå ned i de 4 mapper - skal jeg kopiere funktionen 4 gange og ændre sti til biblioteket og med selve udskriften - der hvor du kriver mappe2 hvad skal der stå der??
Avatar billede hundevennen Nybegynder
13. juli 2007 - 12:37 #20
skal jeg lave en funktion til hver mappe?
Avatar billede fennec Nybegynder
13. juli 2007 - 12:45 #21
Nej, du kalder funktionen med mappe navnet. Din kode vil blive noget ala:

function getFilesInArr(fFolder,fArray,fAmount,fFilter,fSort)
Dim rsFSO, objFSO, objFolder, File, fCount
  Const adInteger = 3
  Const adDate = 7
  Const adVarChar = 200
  redim fArray(6,0)
  Set rsFSO = Server.CreateObject("ADODB.Recordset")
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder(server.mapPath(fFolder))
  Set objFSO = Nothing
  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
  End With
  rsFSO.Open()
 
  For Each File In objFolder.Files
    If (Left(File.Name, 1)) <> Exclude Then
      rsFSO.AddNew
      rsFSO("Name") = File.Name
      if instr(File.Name,".") then
          rsFSO("Type") = mid(File.Name,instrrev(File.Name,".")+1)
      else
          rsFSO("Type") = ""
      end if
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
  if fSort <> "" then
    rsFSO.Sort = fSort
  end if
  if fFilter <> "" then
    rsFSO.Filter = fFilter
  end if
  Set objFolder = Nothing
  rsFSO.MoveFirst()
  fCount = 0
  while not rsFSO.eof and (fCount < fAmount or fAmount=0)
    redim preserve fArray(6,fCount)
    fArray(0,fCount) = rsFSO("name")
    fArray(1,fCount) = rsFSO("Type")
    fArray(2,fCount) = rsFSO("DateCreated")
    fArray(3,fCount) = rsFSO("DateLastAccessed")
    fArray(4,fCount) = rsFSO("DateLastModified")
    fArray(5,fCount) = rsFSO("Size")
    rsFSO.MoveNext
    fCount = fCount + 1
  wend
end function

dim arr

'Hent filer fra bib1
call getFilesInArr("bib1", arr, 1, "Type <> 'zip' and Type <> 'asp' and Type <> 'jpg' and Type <> 'txt' and Type <> 'html'", "DateCreated DESC ")
'Udskriv filerne i arrayet
for f=0 to ubound(arr,2)
  Response.write "<a href=""bib1/"& arr(0,f) &""">"& arr(0,f) &"</a><br>"
next

'Hent filer fra bib2
call getFilesInArr("bib2", arr, 1, "Type <> 'zip' and Type <> 'asp' and Type <> 'jpg' and Type <> 'txt' and Type <> 'html'", "DateCreated DESC ")
'Udskriv filerne i arrayet
for f=0 to ubound(arr,2)
  Response.write "<a href=""bib2/"& arr(0,f) &""">"& arr(0,f) &"</a><br>"
next
...
...
Avatar billede hundevennen Nybegynder
13. juli 2007 - 13:17 #22
jeg er stadig ikke helt med - der hvor der nu står bib1 skal der stå stien til den mappe hvor filerne skal hentes
Avatar billede hundevennen Nybegynder
13. juli 2007 - 13:23 #23
når jeg fyrer funktionen som du har her ovenfor får jeg fejlen Path not found
Avatar billede hundevennen Nybegynder
13. juli 2007 - 13:24 #24
det er den linie med Set objFolder = objFSO.GetFolder(server.mapPath(fFolder))
Avatar billede fennec Nybegynder
13. juli 2007 - 13:33 #25
Ja, lige præsis. Jeg har smidt et eks her:
http://henriknygaard.dk/Experten/787234/index.asp

Koden kan ses her:
http://henriknygaard.dk/Experten/787234/index.txt

Der henter jeg filer fra 2 under mapper (Mappe1 og Mappe2)
Avatar billede fennec Nybegynder
13. juli 2007 - 13:36 #26
Så har du ikke angivet stien rigtigt. Prøv evt med den fulde sti fra roden som jeg har gjort i mit eks.
Avatar billede hundevennen Nybegynder
13. juli 2007 - 14:04 #27
det virker altsammen, ø bortset fra jeg ikke skal ha filextsion med - og jeg har prøvet noget med leftarr(0,f) -4, - men kan ikke få det til at virke
Avatar billede fennec Nybegynder
16. juli 2007 - 08:19 #28
left(arr(0,f),instrrev(arr(0,f),"."))
Avatar billede hundevennen Nybegynder
16. juli 2007 - 08:51 #29
jeg får en fejl med subscript out of range
Avatar billede hundevennen Nybegynder
16. juli 2007 - 08:56 #30
jeg har prøvet med denne
left(arr(0,f),(len(arr(0,f)-4))) med får så fejlen Type mismatch: string og et filnavn
Avatar billede hundevennen Nybegynder
16. juli 2007 - 09:10 #31
fandt ud af det - flyttede lidt på slutparanteserne
left(arr(0,f),(len(arr(0,f)))-4)
Avatar billede fennec Nybegynder
16. juli 2007 - 09:33 #32
Den dur bare ikke med de nye filnavne som har 4 tegn i extensions. Jeg kan så ikke forstå hvorfor den anden ikke virker for dig. Jeg har smidt den på eksemplet på mit site (post 13/07-2007 13:33:26), og der virker det fint. Skulle dog lige en -1 på for at fjerne punktumet.
Avatar billede hundevennen Nybegynder
16. juli 2007 - 10:50 #33
nu drejer det sig kun om pdf filer og jpg filer, så det går - jeg laver lige et nyt spm  - jeg vil gerne se alle filerne i bibliotekerne - det må være samme script - næsten??
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