Avatar billede bongi Juniormester
09. august 2006 - 14:20 Der er 7 kommentarer og
1 løsning

finde og udskrive dato for fil.

Jeg har følgende funktion der finder alle filer i en bestemt mappe, jeg har behov for at finde datoen for oprettelsen af filen og sotere efter den og udskrive den sammen med filnavnet.

<html>
<head>
<title></title>

</head>
<body>

<center>
<%
  sti = "../foto"
  ShowSub = sti & request("ShowSub")
  ShowSubLink = request("ShowSub")
  strPathInfo = ShowSub
 
  strPhysicalPath = Server.MapPath(strPathInfo)

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder(strPhysicalPath)

%>

<table border="0" cellpadding="0" cellspacing="0">
<%


  SiteName = request.servervariables("script_name")
  strPhysicalPath = Server.MapPath(ShowSub)

  If ShowSub > " " then
    ShowSub = Replace(ShowSub, " ", "%20")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath)
    Set objFolderContents = objFolder.Files
    For Each objFileItem in objFolderContents
      ShowPic = Replace(objFileItem.Name, " ", "%20")
      Response.write "<tr><td>"
      Response.Write "<a href=""../foto/" & objFileItem.Name &""" target=filkrop>" & objFileItem.Name  & "</a>"
     
      Response.write "</td></tr>"
    Next
    Set objFSO = Nothing
  End if
  %>
 
  </table>

</center>
</html>
Avatar billede bongi Juniormester
09. august 2006 - 14:24 #1
Sortering skal være med den nyeste fil øverst ;)
Avatar billede bongi Juniormester
09. august 2006 - 14:45 #2
OK... har selv fået løst en del af det men jeg kan sq ikke hitte ud af at sortere dem i datoorden, så man får dem listet med de nyeste øverst:


<html>
<head>
<title></title>

</head>
<body>

<center>
<%
  sti = "../foto"
  ShowSub = sti & request("ShowSub")
  ShowSubLink = request("ShowSub")
  strPathInfo = ShowSub
 
  strPhysicalPath = Server.MapPath(strPathInfo)

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder(strPhysicalPath)

%>

<table border="0" cellpadding="0" cellspacing="0">
<%


  SiteName = request.servervariables("script_name")
  strPhysicalPath = Server.MapPath(ShowSub)

  If ShowSub > " " then
    ShowSub = Replace(ShowSub, " ", "%20")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath)
    Set objFolderContents = objFolder.Files
    For Each objFileItem in objFolderContents
      ShowPic = Replace(objFileItem.Name, " ", "%20")
     
     
if right(objFileItem.name,3) = "htm" then
      Response.write "<tr><td nowrap>"
      Response.Write "<a href=""../foto/" & objFileItem.Name &""" target=filkrop>" & objFileItem.Name  & "</a>"
      Response.Write "</td><td nowrap>" & objFileItem.DateCreated & "</td>"
      filespec = objFileItem.Name
      Response.write "</tr>"
end if
    Next
    Set objFSO = Nothing
  End if
  %>
 
  </table>

</center>
</html>
Avatar billede mitbrugernavn Praktikant
10. august 2006 - 08:56 #3
prøv dette http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=118


<%
' In this demo, at least, we don't allow user to change directories...
' Change the DIRECTORY to point to any virtual directory of your choice.
CONST DIRECTORY = "/" ' relative path in virtual directories

' Specify one of these constants for "sortBy"...
CONST FILE_NAME = 0
CONST FILE_EXT = 1
CONST FILE_TYPE = 2
CONST FILE_SIZE = 3
CONST FILE_CREATED = 4
CONST FILE_MODIFIED = 5
CONST FILE_ACCESSED = 6

' get requested sort order, if not first time here...
' (forward by name is default)
req = Request("sortBy")
If Len(req) < 1 Then sortBy = 0 Else sortBy = CInt(req) 'her retter du 0 til for visning af hvilke type du ønsker som start
req = Request("priorSort")
If Len(req) < 1 Then priorSort = -1 Else priorSort = CInt(req)

'
' did user ask for same sort? to reverse the order?
' but if so, then zap priorSort so clicking again will do forward!
If sortBy = priorSort Then
    reverse = true
    priorSort = -1
Else
    reverse = false
    priorSort = sortBy
End If

' now start the *real* code...
'
path = Server.MapPath( DIRECTORY )

Set fso = CreateObject("Scripting.FileSystemObject")
Set theCurrentFolder = fso.GetFolder( path )
Set curFiles = theCurrentFolder.Files
'
' And now a loop for the files
'
Dim theFiles( )
ReDim theFiles( 500 ) ' arbitrary size!
currentSlot = -1 ' start before first slot

' We collect all the info about each file and put it into one
' "slot" in our "theFiles" array.
'
For Each fileItem in curFiles
    fname = fileItem.Name
    fext = InStrRev( fname, "." )
    If fext < 1 Then fext = "" Else fext = Mid(fname,fext+1)
    ftype = fileItem.Type
    fsize = fileItem.Size
    fcreate = fileItem.DateCreated
    fmod = fileItem.DateLastModified
    faccess = fileItem.DateLastAccessed
    currentSlot = currentSlot + 1
    If currentSlot > UBound( theFiles ) Then
        ReDim Preserve theFiles( currentSlot + 99 )
    End If
    ' note that what we put here is an array!
    theFiles(currentSlot) = Array(fname,fext,ftype,fsize,fcreate,fmod,faccess)
Next
'
' files are now in the array...
'
' As noted, it is actually an ARRAY *OF* ARRAYS. Which makes
' picking the column we will sort on easier!
'
' ...size and sort it...
fileCount = currentSlot ' actually, count is 1 more, since we start at 0
ReDim Preserve theFiles( currentSlot ) ' really not necessary...just neater!

' First, determine which "kind" of sort we are doing.
' (VarType=8 means "string")
'
If VarType( theFiles( 0 )( sortBy ) ) = 8 Then
    If reverse Then kind = 1 Else kind = 2 ' sorting strings...
Else
    If reverse Then kind = 3 Else kind = 4 ' non-strings (numbers, dates)
End If

'
' A simple bubble sort for now...easier to follow the code...
'
For i = fileCount TO 0 Step -1
    minmax = theFiles( 0 )( sortBy )
    minmaxSlot = 0
    For j = 1 To i
        Select Case kind ' which kind of sort are we doing?
        ' after the "is bigger/smaller" test (as appropriate),
        ' mark will be true if we need to "remember" this slot...
        Case 1 ' string, reverse...we do case INsensitive!
            mark = (strComp( theFiles(j)(sortBy), minmax, vbTextCompare ) < 0)
        Case 2 ' string, forward...we do case INsensitive!
            mark = (strComp( theFiles(j)(sortBy), minmax, vbTextCompare ) > 0)
        Case 3 ' non-string, reverse ...
            mark = (theFiles( j )( sortBy ) < minmax)
        Case 4 ' non-string, forward ...
            mark = (theFiles( j )( sortBy ) > minmax)
        End Select
        ' so is the current slot bigger/smaller than the remembered one?
        If mark Then
            ' yep, so remember this one instead!
            minmax = theFiles( j )( sortBy )
            minmaxSlot = j
        End If
    Next
    ' is the last slot the min (or max), as it should be?
    If minmaxSlot <> i Then
        ' nope...so do the needed swap...
        temp = theFiles( minmaxSlot )
        theFiles( minmaxSlot ) = theFiles( i )
        theFiles( i ) = temp
    End If
Next
' Ta-da! The array is sorted!
'
%>
Avatar billede bongi Juniormester
10. august 2006 - 14:01 #4
Men hvor/hvordan bliver de skrevet ud ?
Avatar billede mitbrugernavn Praktikant
10. august 2006 - 14:49 #5
opret en asp fil i samme mappe som dine filer og smid koden der i
Avatar billede bongi Juniormester
10. august 2006 - 15:20 #6
har forsøgt men der kommer bare en blank skærm ;)
Avatar billede mitbrugernavn Praktikant
10. august 2006 - 15:28 #7
prøv dette link - så kan du se hvordan det ser ud http://www.roubaixinteractive.com/PlayGround/FSO/Sort_Folder_Contents.asp

det har kørt fint hos mig
Avatar billede bongi Juniormester
13. august 2006 - 19:44 #8
tak for hjælpen, fik det til at virke
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