05. marts 2007 - 12:16Der er
8 kommentarer og 1 løsning
Vis filer/undermapper
Jeg har brug for et script der kan:
1. Vise alle filer i en mappe 2. Vise alle undermapper
Man skal være et link til selve filerne/mapperne, så man kan downloade filerne eller navigere videre ned i undermapperne og downloade de filer man nu har brug for.
<% path = "overordnet mappe" set fs=Server.CreateObject("Scripting.FileSystemObject") Set folder = fs.GetFolder(Server.MapPath(path)) Set files = folder.files For Each File in files Response.Write "<li><a href=" & path & "/" & file.Name & " target=""_blank"">" & file.name & "</a></li>" Next set f = nothing set fs = nothing %>
Problemet med denne er bare at den ikke kan se undermapper...
Nu kan jeg desværre ikke finde ud af ASP men jeg kan finde ud af VBscript, og det her Vbscript kan fortælle dig alle filer og underfiler i en given mappe, håber du kan bruge det til inspiration...
Option Explicit
Private mlngfileCount Call Command1_Click
Private Sub Command1_Click() Dim strPath, strFind Dim objFSO Dim objFolder
mlngfileCount = 0 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strPath)
Call ReplaceFileNameInFolder(objFSO, objFolder, strFind) MsgBox "Find and change finished!" & vbCrLf & "Changed " & mlngfileCount, vbInformation End Sub
Sub ReplaceFileNameInFolder(objFSO, objFolder, strFind) Dim objDocFile Dim objSubFolder Dim objDoc Dim objHyperlink Dim blnChanged Dim strOldAddress Dim strNewAddress Dim StrFolder
For Each objDocFile In objFolder.Files 'If UCase(objFSO.GetExtensionName(objDocFile.Path)) = "TXT" Then 'renames the file wscript.echo objDocFile.Name mlngfileCount = mlngFileCount + 1 'End If Next
For Each objSubFolder In objFolder.SubFolders Call ReplaceFileNameInFolder(objFSO, objSubFolder, strFind) Next End Sub
Okay, det kan jeg nok ikke klare for dig desværre... Men jeg kan da fortælle dig at det ikke burde være så svært.. wscript.echo er det samme som response.write....
Og som du nok kan se hvis du tager alle DIM'sne væk så er koden vel mere eller mindre den samme de hedder bar lidt andet din FS hedder i den kode jeg har objFSO, og din folder hedder objFolder
Men igen jeg er nok heller ikke så stiv i det at jeg kan gøre det... men koden du skal bruge er der i hvert fald... (asp er vbscript bare stillet op på en anden måde...)
Ok, det vidste jeg ikke. Jeg roder lidt rundt med det, men hvis der nu er en som læser dette og ligger inde med guldkornet, så må de meget gerne ligge en besked :-)
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strPhysicalPath)
For each Folder in objFolder.SubFolders If Left(Folder.Name,1)<>"_" Then Response.Write "<img src='mappe.jpg' border='0' alt='Mappe'> <a href=""" & CurFile & "?ShowSub=" & ShowSubLink & "" Response.Write(Replace(Folder.Name, " ", "%20")) response.write "/"">" Response.Write Folder.Name Response.Write "<br>" End if Next
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 Response.write "<tr><td>" if InStr(1,"mov", LCase(objFSO.GetExtensionName(objFileItem.name))) > 0 then
Response.Write "<a href=""trailers/dk_show.asp?fil=" & "" & objFileItem.Name &""">" & objFileItem.Name & "</a>" else Response.Write "<img src='fil.jpg' border='0' alt='Fil'> <a href=""" & ShowSub & "/" & objFileItem.Name &""">" & objFileItem.Name & "</a>" End if Response.write "</td></tr>" Next Set objFSO = Nothing End if %>
sgu fair nok der.. :D jeg hjalp jo vel egentlig ikke... det klarede du sgu fint selv.. :D husk det til næste gang...
Synes godt om
Ny brugerNybegynder
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.