Avatar billede thaman65 Nybegynder
09. april 2003 - 15:56 Der er 13 kommentarer og
1 løsning

mappe links

Jeg vil gerne have lavet dette script om således at jeg kun får den relative sti og ikke hele smøren :) hvis i forstår. Hermed mener jeg selvfølgelig ./filer

Den skal ligesom nu vise filer og mapper og går man ind i en mappe skal stien selvfølgelig tilpasses således man får den rigtige fil.

Her er koden (Nappet fra et andet spørgsmål)

<%
Function ShowFolderList()
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    Set file = fso.GetFolder(folderspec)
    Set drivecollection = fso.drives
    tmp = tmp & file.path & "<br><br>"
    set foldercollection2 = file.subfolders
    for each folder in foldercollection2
    tmp = tmp & "<b><a href='" & request.servervariables("script_name") & "?path=" & folder & "'>" & folder.name & "</a></b><br>"
    next

    Set foldercollection = file.Files
    For Each file in foldercollection
   
    tmp = tmp & "<a href='files.asp?file=" & folderspec & "" & file.name & "&action=open'>" & file.name & "</a><BR>"
       
    Next
    ShowFolderList = tmp
End Function
response.write showfolderlist()
%>
Avatar billede thaman65 Nybegynder
09. april 2003 - 16:07 #1
How det var vist sådan den skulle se ud :)

<%
Function ShowFolderList()
    if request.querystring("path") = "" then
    tmp = server.mappath("files.asp")
    tmp = replace(tmp, "files.asp", "")
    folderspec = tmp
    tmp = ""
    else
    folderspec = request.querystring("path")
    end if
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    Set file = fso.GetFolder(folderspec)
    Set drivecollection = fso.drives
    tmp = tmp & file.path & "<br><br>"
    set foldercollection2 = file.subfolders
    for each folder in foldercollection2
    tmp = tmp & "<b><a href='" & request.servervariables("script_name") & "?path=" & folder & "'>" & folder.name & "</a></b><br>"
    next

    Set foldercollection = file.Files
    For Each file in foldercollection
   
    tmp = tmp & "<a href='files.asp?file=" & folderspec & "" & file.name & "&action=open'>" & file.name & "</a><BR>"
       
    Next
    ShowFolderList = tmp
End Function
response.write showfolderlist()
%>
Avatar billede eagleeye Praktikant
09. april 2003 - 17:47 #2
Prøv med dette kode den laver relative stier. Det er din kode omskrevet.:

<%
Function ShowFolderList()
 
  path = request.querystring("path")
  if path = "" then
    path = "."
  end if
  folderspec = server.mappath(path)
 
  sti = path & "/"
 
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  Set file = fso.GetFolder(folderspec)
  Set drivecollection = fso.drives
  tmp = tmp & file.path & "<br><br>"
  set foldercollection2 = file.subfolders
  for each folder in foldercollection2
    tmp = tmp & "<b><a href='" & request.servervariables("script_name") & "?path=" & sti & folder.name & "'>" & folder.name & "</a></b><br>"
  next

  Set foldercollection = file.Files
  For Each file in foldercollection
   
    tmp = tmp & "<a href='files.asp?file=" & sti & file.name & "&action=open'>" & file.name & "</a><BR>"
       
  Next
  ShowFolderList = tmp
End Function
response.write showfolderlist()
%>
Avatar billede thaman65 Nybegynder
09. april 2003 - 18:02 #3
Jeg synes nu ikke jeg kan få det til at virke.
Her er koden som jeg gerne vil have den til at se ud. Hvad vil den returnere når jeg klikker på et link?

<html>
<head>
<base target="mainFrame">
</head>
<body>
<%
Function ShowFolderList()
 
  path = request.querystring("path")
  if path = "" then
    path = "."
  end if
  folderspec = server.mappath(path)
 
  sti = path & "/"
 
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  Set file = fso.GetFolder(folderspec)
  Set drivecollection = fso.drives
  tmp = tmp & file.path & "<br><br>"
  set foldercollection2 = file.subfolders
  for each folder in foldercollection2
    tmp = tmp & "<b><a href='" & request.servervariables("script_name") & "?path=" & sti & folder.name & "'>" & folder.name & "</a></b><br>"
  next

  Set foldercollection = file.Files
  For Each file in foldercollection
   
    tmp = tmp & "<a href='editor.asp?fil=" & sti & file.name & "'>" & file.name & "</a><BR>"
       
  Next
  ShowFolderList = tmp
End Function
response.write showfolderlist()
%>

</body>
</html>
Avatar billede thaman65 Nybegynder
09. april 2003 - 18:03 #4
Den skulle gerne returnere på formen ./folder/folder/fil.htm :D
Avatar billede eagleeye Praktikant
09. april 2003 - 18:09 #5
Den tager udgangs punkt i den folder ASP filen ligger i.

Så hvis din ASP kode ligger i xxx og du trykker på en fil som ligger i yyy under xxx så får du:
./yyy/filname.ext
Avatar billede eagleeye Praktikant
09. april 2003 - 18:10 #6
Alternativt skal det laves sådan at den tager udgangspunkt i roden på serveren.
Avatar billede thaman65 Nybegynder
09. april 2003 - 18:12 #7
Nej det var bare mig der kludrer, internet explorers temp filer er ikke til at regne med :)

Hvis jeg nu skulle lave det således at den kun lister filer der ender på htm. Hvordan skulle jeg så gøre det?
Avatar billede thaman65 Nybegynder
09. april 2003 - 18:14 #8
Det skal siges at det virker fint :D Jeg giver points, men hvis du er flink så svarer du på mit ovenstående spørgsmål. Tusind tak for det første svar :)
Avatar billede eagleeye Praktikant
09. april 2003 - 18:15 #9
Så tilføjer du en if sætning som tjekker på om filen hedder .html :

Så dette:


  For Each file in foldercollection
   
    tmp = tmp & "<a href='editor.asp?fil=" & sti & file.name & "'>" & file.name & "</a><BR>"
       
  Next


Bliver til:

  For Each file in foldercollection
   
    if LCase(fso.GetExtensionName(file.name)) = "htm" then
      tmp = tmp & "<a href='files.asp?file=" & sti & file.name & "&action=open'>" & file.name & "</a><BR>"
    end if
  Next
Avatar billede thaman65 Nybegynder
09. april 2003 - 18:38 #10
Tak skal du have, det er sq rart at der er nogle eksperter til stede. Du skulle vel ikke have forstand på java script for så har jeg et spørgsmål stående med 150 point som ingen gider svare på :)
Tror måske den er lidt tricky, men jeg ved selvfølgelig ikke. Ellers får du mange tak for svarene.
Avatar billede thaman65 Nybegynder
09. april 2003 - 18:48 #11
Kunne man eventuelt lave et link der går en mappestruktur tilbage?
Avatar billede eagleeye Praktikant
09. april 2003 - 23:27 #12
Du kan tilføje dette hvor du vil havde det:

  if sti = "./" then
    Response.Write ".."
  else
    stiBack = Left(sti,len(sti)-1)
    stiBack = Left(stiBack,InStrRev(stiBack,"/")-1)
   
    Response.Write "<a href='" & request.servervariables("script_name") & "?path=" & stiBack & "'>..</a>"
  end if



Dog skal det være efter denne linje:

  sti = path & "/"
Avatar billede thaman65 Nybegynder
10. april 2003 - 08:26 #13
Jeg får denne fejl ved at indsætte dit script.

Microsoft VBScript runtime error '800a0005'

Invalid procedure call or argument: 'Left'

/demo/hoved/files.asp, line 20
Avatar billede thaman65 Nybegynder
10. april 2003 - 08:27 #14
Det var da grove som jeg klumrer i det :) Så snart jeg skriver at det ikke virker får jeg det til at virke :) he he
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