---
title: "FSO-Script?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12827-fso-script"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "DKZ"
published: "2001-08-24T11:52:00.000Z"
updated: "2001-11-26T09:28:00.000Z"
replies: 4
views: 288
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/12827-fso-script"
---

# FSO-Script?

## #1 — DKZ, 2001-08-24T11:52Z

Någon som har ett färdigt script som listar samtliga filer/datum i en mapp på webbservern sorterat efter datum + skapar länkar till filerna?

Eller tips på länkar till ett script. 
:)

Permalänk: https://www.webforum.nu/p/12827

## #2 — DKZ, 2001-08-24T12:18Z

Hittade detta script på aspin, men det sorteras efter filnamn hur ska jag skriva så att listan sorteras efter datum? senaste överst på sidan???

\<% @LCID = 1053 %\>
\<html\>
\<head\>
	\<title\>Untitled\</title\>
\</head\>
\<body\>
\<% 
' Just wrap your existing page around this code.
' put in the folder name below relative to the directory that this script is in
' DO NOT put leading or trailing slashes though.
' DO NOT use backslashes at all regardless of the server your on.

folder = ""

' The table shows the filename as a link, the date last modified and the file size
' Adjust the table and columns as needed.  Delete columns if you don't need them

' Find out what type of server we are on and the server data
If Left(server.mappath("."),1) = "/" Then 
	strslash = "/"
Else
	strslash = "\\"
End If
servername = Request.Servervariables("server_name")
scriptpath = Request.Servervariables("script_name")
scriptpath = Mid(scriptpath,(Instrrev(scriptpath, "/")),1)
Dim filesobj, fileslist, fname, posnumright
dim f, dflm
Set filesobj = Server.CreateObject("scripting.filesystemobject")
Set fileslist = filesobj.GetFolder(server.mappath(".") & "/" & folder)
%\>
\<!-- \*\*\*\*\*\*\*\*\*\*\*\*\* Table start and header row \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*--\>
\<table width="95%"\>
\<tr\>
\<td width="50%"\>File\</td\>\<td\>Date\</td\>\<td\>Size\</td\>\</tr\>

\<%
For each thing In fileslist.files
posnumright = instrrev(thing, strslash)
fname = right(thing,(len(thing)-posnumright))
Set f = filesobj.GetFile(thing)
fdlm = f.datelastmodified
If f.size \> 1023 Then 
	fsize = CStr(CInt(f.size / 1024)) & "K"
Else
	fsize = CStr(f.size) & " bytes"
End If
physicalpath = server.mappath(".")
%\>
	\<tr\>
		\<td\>
		\<!-- \*\*\*\*\*\*\* First column with link to file name \*\*\*\*\*\*\* --\>
			\<a href="http://\<%=servername & scriptpath & folder & "/" & Server.HTMLEncode(fname) %\>" target="\_blank"\>\<%=Server.HTMLEncode(fname)%\>\</a\>
		\</td\>
		\<td\>
		\<!-- \*\*\*\*\*\*\* Second column with last modified date of file \*\*\*\*\* --\>
			\<%=Server.HTMLEncode(fdlm)%\>
		\</td\>
		\<td\>
		\<!-- \*\*\*\*\*\*\* Third column with file size \*\*\*\*\*\*\*\* --\>
			\<%= Server.HTMLEncode(fsize) %\>
		\</td\>
	\</tr\>
\<% 
Set f = Nothing
Next
Set fileslist = Nothing
Set filesobj = Nothing
%\>
\<!-- \*\*\*\*\*\*\*\*\*\*\*\*\*\*\* End of Table \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* --\>
\</table\>
\</body\>
\</html\>

Permalänk: https://www.webforum.nu/p/295769

## #3 — PatrikB, 2001-08-24T13:48Z

Eller en sådan här:

```
<%
Option Explicit

Response.Buffer = TRUE

Dim strFolder, intTotalSubfolders

%>
<HTML>
<HEAD>
<TITLE>Filhanterare</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>

<BODY bgcolor="#FFFFFF" text="#000000">
<%
strFolder = Request.QueryString("folder")

Call ListFiles(strFolder)

'=======================================================================
Sub ListFiles(ByVal oFolderPath)
	If IsEmpty(oFolderPath) Then oFolderPath = Server.MapPath("\")
	
	Dim m_objFSO, m_objFolder, m_objSubFolder, m_objRSlist
	Dim File, SubFolder
	Dim m_strSubFolder, m_strScriptName
	
	Const adOpenStatic = 3
	Const adLockOptimistic = 3
	Const adVarChar = 200
	Const adInteger = 3
	Const adDate = 7
	
	m_strScriptName = Request.ServerVariables("SCRIPT_NAME")
	
	Set m_objRSlist = Server.CreateObject("ADODB.Recordset")
			'## -- definiera fälten som ska ingå i recordsetet --
			m_objRSlist.Fields.Append "Name", adVarChar, 255
			m_objRSlist.Fields.Append "Size", adInteger, 50
			m_objRSlist.Fields.Append "Type", adVarChar, 255
			m_objRSlist.Fields.Append "Last Modified", adDate
			
			'## -- skapa fälten och öppna recordsetet --
			m_objRSlist.Open ,,adOpenStatic,adLockOptimistic

	Set m_objFSO = Server.CreateObject("Scripting.FileSystemObject")
		'## -- hämta katalog information --
		Set m_objFolder = m_objFSO.GetFolder(oFolderPath)
%>
<TABLE width="760" border="0" cellspacing="0" cellpadding="2">
  <TR>
    <TD><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size="3">Namn</FONT></B></TD>
    <TD><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size="3">Typ</FONT></B></TD>
    <TD><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size="3">Storlek</FONT></B></TD>
    <TD><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size="3">Senast Ändrad</FONT></B></TD>
  </TR>
  <%	
	
			'## -- lista alla underkataloger i katalogen --
			For Each SubFolder IN m_objFolder.SubFolders

				'## -- lägg till katalog information i recordsetet --
				m_objRSlist.AddNew

					m_objRSlist("Name") = SubFolder.Name
					m_objRSlist("Size") = SubFolder.Size
					m_objRSlist("Type") = SubFolder.Type
					m_objRSlist("Last Modified") = SubFolder.DateLastModified

				m_objRSlist.Update
			Next	'## -- nästa katalog --
		
			'## -- lista alla filer i katalogen --
			For Each File IN m_objFolder.Files
				'## -- lägg till katalog information i recordsetet --
				m_objRSlist.AddNew

					m_objRSlist("Name") = File.Name
					m_objRSlist("Size") = File.Size
					m_objRSlist("Type") = File.Type
					m_objRSlist("Last Modified") = File.DateLastModified

				m_objRSlist.Update
			Next	'## -- nästa fil --
			
			'## -- sortera efter datum fallande --
			m_objRSlist.Sort = "Type, [Last Modified] ASC"

			'## -- gå till första posten --
			m_objRSlist.MoveFirst
			
			'## -- loopa igenom recordsetet --
			Do Until m_objRSlist.EOF
%>
  <TR>
    <TD>
      <FONT face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <% =m_objRSlist("Name")%>
    </FONT></TD>
    <TD>
      <FONT face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <% =m_objRSlist("Type")%>
    </FONT></TD>
    <TD>
      <FONT face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <% =m_objRSlist("Size")%>
    </FONT></TD>
    <TD>
      <FONT face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <% =m_objRSlist("Last Modified")%>
    </FONT></TD>
  </TR>
  <%
				m_objRSlist.MoveNext
			Loop
			m_objRSlist.Close
		Set m_objRSlist = Nothing
		
		Set m_objFolder = Nothing
	Set m_objFSO = Nothing
%>
</TABLE>
<%		
End Sub
%>
</BODY>
</HTML>
```

Lek lite med denna kod och du kommer säkert på hur du kan sortera efter vad du vill, stigande eller fallande

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/295770

## #4 — Boma, 2001-08-24T14:01Z

Eller scriptet som finns här: <http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=118>

Permalänk: https://www.webforum.nu/p/295771

## #5 — soffan76, 2001-11-26T09:28Z

Hej!

Testade Patrik B:s kod. Funkar fint lokalt men uppladdad på servern får jag felmeddelandet nedan.
Är det nån inställning på webbhotellet som ska göras?

Server object error 'ASP 0177 : 800a004c' 

Server.CreateObject Failed 

/filhanterare.asp, line 48 

The operation completed successfully.

Permalänk: https://www.webforum.nu/p/295772

---

Tråden på webben: https://www.webforum.nu/amne/asp/12827-fso-script
