webForumDet fria alternativet

FSO-Script?

4 svar · 274 visningar · startad av DKZ

DKZMedlem sedan aug. 20012 inlägg
#1

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.
:)

DKZMedlem sedan aug. 20012 inlägg
#2

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>

PatrikBMedlem sedan mars 20002 836 inlägg
#3

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

------------------
*ordning och reda!, pengar på fredag.*

[Redigerat av PatrikB den 24 aug 2001]

BomaMedlem sedan aug. 200160 inlägg
#4

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

soffan76Medlem sedan maj 2001684 inlägg
#5

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.

------------------
Sofia

139 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)