Avatar billede bgoalias2001 Nybegynder
16. november 2003 - 14:47 Der er 11 kommentarer og
1 løsning

x nyeste filer

Jeg har en flok filer med tilfældige navne.

Men nu er det sådan at jeg gerne ville have vist de første x-antal nyeste filer, ikke rettede men oprettede filer.

Håber der er nogen der kan hjælpe ;o)
Avatar billede deeflate Nybegynder
16. november 2003 - 18:56 #1
Her er lidt om, hvordan du kan få fat i informationer om filerne. Bl.a. hvornår de er oprettet.
http://www.w3schools.com/asp/asp_ref_file.asp
Avatar billede deeflate Nybegynder
16. november 2003 - 18:57 #2
Eksempel på DateCreated: http://www.w3schools.com/asp/prop_datecreated.asp

Håber det hjælper lidt :)
Avatar billede deeflate Nybegynder
16. november 2003 - 19:54 #3
Og følgende kode udskriver navnene på alle filer i en folder, hvorefter den nyeste fil findes og navnet på denne udskrives:

<html>
<head>
<title>Filoversigt</title>
</head>
<body>

<%
if request.querystring("dir") = "" Then
  dir = "filer/"
else
  dir = Request.querystring("dir") & "/"
end if

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(server.mappath(dir))
Set objFiles = objFolder.Files
%>

<!-- ************************ filoversigt *************************** -->

<h3>Filer i folderen <%=dir%>:</h3>

<%
For Each Image In objFiles

  response.Write Image.Name & "<br><br>"

  sti = server.mappath(dir & image.name)

  set f= objFS.GetFile(sti)
  Response.Write("Filen er oprettet: ")
  Response.Write(f.DateCreated)


  response.Write "<br><br><br>"

  currentFile = f.DateCreated

  if sidste <> "" Then
    mForskel = DateDiff("m",currentFile,sidste)
    dForskel = DateDiff("d",currentFile,sidste)
    nForskel = DateDiff("n",currentFile,sidste)
  end if

  If (mForskel < 1) and (dForskel < 1) and (nForskel < 1) Then
    nyeste = image.name
  end if

  sidste = (f.DateCreated)

  set f=nothing

Next

response.Write "<br><hr><br>Nyeste fil er: " & nyeste

%>

<!--  ************************ // filoversigt slut // *************************** -->

</body>
</html>
Avatar billede bgoalias2001 Nybegynder
16. november 2003 - 20:03 #4
det var oplysninger jeg godt var klar over men kan ikke kombinere det så det virker efter det jeg vil opnå :o(
Avatar billede deeflate Nybegynder
16. november 2003 - 20:10 #5
Ok, så det eneste, der mangler er at lave det sådan, at den sorterer et variabelt antal nyeste filer fra?
Skal antallet kunne varieres af brugeren?
Avatar billede bgoalias2001 Nybegynder
16. november 2003 - 20:43 #6
ja brugeren skal kunne variere antallet...
Avatar billede deeflate Nybegynder
16. november 2003 - 21:26 #7
Jeg er optaget den næste time, men efter det skal jeg gerne se på det (det bliver så ved 22:30-tiden).
Avatar billede bgoalias2001 Nybegynder
16. november 2003 - 21:41 #8
det lyder godt ;o)
Avatar billede deeflate Nybegynder
16. november 2003 - 23:21 #9
Jeg tror jeg har den - giv mig lige et par minutter til at teste :)
Avatar billede deeflate Nybegynder
16. november 2003 - 23:35 #10
Prøv dette her engang.
Vidste ikke lige, hvordan din bruger skal vælge antallet, så jeg har altså bare lavet et tekstfelt.

<html>
<head>
<title>Filoversigt</title>
</head>
<body>

<%
'husk at rette til evt. ny default directory!
'skal slutte med /
if request.querystring("dir") = "" Then
  dir = "filer/"
else
  dir = Request.querystring("dir") & "/"
end if

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(server.mappath(dir))
Set objFiles = objFolder.Files

i = 0

%>

<!-- ************************ filoversigt *************************** -->

<h3>Filer i folderen <%=dir%>:</h3>
<br>
Her er lige en fuld filoversigt, så vi kan holde øje med det hele :)
<br><br>

<%

antalFiler = 0

For Each Image In objFiles

  antalFiler = antalFiler + 1

  response.Write Image.Name & " - "

  sti = server.mappath(dir & image.name)

  set f= objFS.GetFile(sti)

  Response.Write("Filen er oprettet: ")
  Response.Write(f.DateCreated)

  response.Write "<br><br>"

  set f=nothing

Next

response.Write "Der er i alt " & antalFiler & " filer<br><br>"

response.Write "<br><br><hr><br><br>"


'denne funktion er en omskrevet version af dark-mixers oprindelige funktion
'fra ekspertens spg 325656 ( http://www.eksperten.dk/spm/325656 )

Function ShellSort(vArray)
Dim TempVal
Dim TempFil
Dim i, GapSize, CurPos
Dim FirstRow, LastRow, NumRows
FirstRow = LBound(vArray)
LastRow = UBound(vArray)
NumRows = LastRow - FirstRow + 1
Do
  GapSize = GapSize * 3 + 1
Loop Until GapSize > NumRows
Do
  GapSize = GapSize \ 3
  For i = (GapSize + FirstRow) To LastRow
  CurPos = i
  TempVal = vArray(i)


  TempFil = arrFiler(i)


  Do While CompareResult(CDbl(vArray(CurPos - GapSize)),CDbl(TempVal))
    vArray(CurPos) = vArray(CurPos - GapSize)

    arrFiler(CurPos) = arrFiler(CurPos - GapSize)

    CurPos = CurPos - GapSize
    If (CurPos - GapSize) < FirstRow Then Exit Do
  Loop
  vArray(CurPos) = TempVal

  arrFiler(CurPos) = TempFil

  Next
Loop Until GapSize = 1
End Function

Function CompareResult(Value1, Value2)
CompareResult = (Value1 < Value2)
End Function

i = 0

Dim arrDato()
redim arrDato(antalFiler)

Dim arrFiler()
redim arrFiler(antalFiler)

For Each Image In objFiles

  sti = server.mappath(dir & image.name)

  set f= objFS.GetFile(sti)

  arrDato(i) = f.DateCreated

  arrFiler(i) = image.name

  i = i + 1

  set f = Nothing

Next


ShellSort arrDato

a = CInt(request.form("antal"))

if antalFiler < a Then
  a = antalFiler
end if

For I = 0 to a - 1
  Response.Write arrFiler(i) & " - Filen er oprettet " & arrDato(i) & "<br>"
 
Next


%>



<form method="post">
Hvor mange filer vil du se?
<br>
<input type="text" name="antal">
<input type="submit" value="Opdater visning">
</form>



</body>
</html>
Avatar billede bgoalias2001 Nybegynder
17. november 2003 - 18:05 #11
Det virker perfekt ;o) er glad for at du kunne hjælpe ... så slap jeg denne gang for at smadre min computer .. har knoglet med problemet i 4 dage nu uden at komme så meget som at få dem soteret efter dato ;o)
Avatar billede deeflate Nybegynder
17. november 2003 - 19:01 #12
Jamen, jeg er da også glad for at kunne hjælpe :)
Og tak for point :)
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