Список структуры папок в Классический ASP

Я разработал защищенную страницу в ASP для компании, в которой я работаю. Существует целевая страница (страница входа), на которой после аутентификации вы попадаете на страницу со ссылками на несколько дополнительных страниц. Каждая подстраница имеет структуру папок. Например: есть заголовок «Протокол собрания», а затем под ним с отступом находятся ссылки, ссылающиеся на PDF-файлы, содержащие информацию. Может быть 3 или 4 заголовка со ссылками на документы внизу.

В исходной версии был сценарий PHP, который запускался и синхронизировал действующий сайт на сервере из структуры папок, которая имитировалась на действующем сайте. Итак, если бы у меня была папка с именем Folder1 и подпапки с именем test1 test2 test3 .., живой сайт отобразил бы их соответственно. Поскольку сайт теперь находится на ASP, а не на PHP ... PHP-скрипт больше не работает (поскольку PHP плохо работает с ASP).

Я нашел в Интернете фрагмент, который отчасти работает для того, чего я пытаюсь достичь ( т.е. структура папки / подпапки / имени файла), однако в данный момент я застрял в том, как связать файлы, чтобы они открывались при нажатии. Я все время вижу% 25 в имени файла. Я знаю, что% 20 - это то же самое, что и пустое пространство, и поскольку я имею дело с именами файлов и папок, которые содержат пробелы, это, похоже, моя проблема. Я пробовал добавить% 20, но пробелы стали «% 2520».

Если вы посмотрите на код ниже, внизу есть ссылка, которая вызывает «MapURL». Я прокомментировал эту ссылку, пока пытался выяснить, откуда взялся% 25. У кого-нибудь есть мысли, как заставить работать ссылки?

Вот фрагмент.

dim path 
path = "PATH TO THE FOLDER ON THE SERVER"

ListFolderContents(path)

sub ListFolderContents(path)

 dim fs, folder, file, item, url
 set fs = CreateObject("Scripting.FileSystemObject")
 set folder = fs.GetFolder(path)

'Display the target folder and info.

 Response.Write("<ul><b>" & folder.Name & "</b>") '- " _
 '  & folder.Files.Count & " files, ")
 'if folder.SubFolders.Count > 0 then
 '  Response.Write(folder.SubFolders.Count & " directories, ")
 'end if
 'Response.Write(Round(folder.Size / 1024) & " KB total." _
 '  & "</ul>" & vbCrLf)

 Response.Write("<ul>" & vbCrLf)

 'Display a list of sub folders.

 for each item in folder.SubFolders
   ListFolderContents(item)
 next

 'Display a list of files.

 for each item in folder.Files
   'url = MapURL(item.path)
   'Response.Write("<li><a href=" & url & ">" & item.Name & "</a> - " _

   Response.Write("<li><a href=" & Replace(item.path," ","%") & ">" & item.Name & "</a> - " _
     & item.Name & "</a>" _
     & "</li>" & vbCrLf)
 next

 Response.Write("</ul>" & vbCrLf)
 Response.Write("</ul>" & vbCrLf)

 end sub

function MapURL(path)

 dim rootPath, url

 'Convert a physical file path to a URL for hypertext links.

 rootPath = Server.MapPath("/")
 url = Right(path, Len(path) - Len(rootPath))
 MapURL = Replace(url, "\", "/")

end function
5
задан Tomalak 28 June 2011 в 15:24
поделиться