Hello. I am trying ot make a menu for a web page that is built from the folder structure on the server. I have go the basics working, but have 2 questions.
1) Can this code be cleaned up? -
<%
-
for each FolderIndex in MSubfolders
-
'create menu items for all folders that do not start with an underscore
-
if Left(FolderIndex.name,1) <> "_" Then
-
response.write ("<li><a class='qmparent' href=" & (HOME) & "?loc=/intranet/" & Replace ((FolderIndex.name)," ","%20") & "/>" & (FolderIndex.name) & "</a>")
-
MSubpath = Server.MapPath(FolderIndex.name)
-
MSubfolder = FSO.GetFolder(MSubpath)
-
MSubfolders = MSubfolder.SubFolders
-
if (MSubfolders.count > 1) then
-
response.write("<ul>")
-
for each MSubfolderIndex in MSubfolders
-
if Left(MSubfolderIndex.name,1) <>"_" Then
-
response.write("<li><a href=" & (HOME) & "?loc=/intranet/" & Replace((FolderIndex.name)," ","%20") & "/" & Replace(Replace(MSubfolderIndex.name," ","%20"),"&","&") & "/>" & (MSubfolderIndex.name) & "</a></li>")
-
End If
-
next
-
response.write("</ul>")
-
End If
-
MSubfolders = nothing
-
response.write ("</li>")
-
End If
-
next
-
MSubolders = nothing
-
%>
-
Within the current folder, I need to build a list of folders, files, subfolders, subfolder files, and check if the subfolders contain more subfolders or if they are the last level. Can this be done directly with FSO or do I need to keep repathing a variable (like MSubFolders above)?
2) is there a way to handle '&' in the folder name? I tried - Replace(Replace((FolderIndex.name)," ","%20"),"&","&")
to replace both ampersands and blank spaces, but it wouldn't work. Any ides?
Thanks for looking this over!
3 1745
Hi Rob,
Welcome to Bytes.com. Please be sure to take a read through the Posting Guidelines and FAQs.
I've edited your posts to include use of our code tags - you can use these yourself, when posting a message, you'll see the # sign on your toolbar.
With regards to your question, the answer is normally a recursive function - one that calls itself iteratively until a certain condition is met (in this instance, there are no more subfolders). When I was doing classic ASP, recursion had me completely lost unfortuantely, so I'll leave it to another expert to help you out.
codegecko
Moderator
iam_clint 1,208
Recognized Expert Top Contributor
This is how I would do it.. Feel free to ask questions about any of it you don't quite understand -
<%
-
Dim Home
-
Home="www.somewhere.com"
-
set fs=Server.CreateObject("Scripting.FileSystemObject")
-
set MainFolder=fs.GetFolder(Server.MapPath("/"))
-
set MSubfolders=MainFolder.SubFolders
-
pWrite("<UL>") 'add crlf to make it pretty
-
for each FolderIndex in MSubfolders
-
if Left(FolderIndex.name,1) <> "_" Then 'create menu items for all folders that do not start with an underscore
-
if Not FolderIndex.Attributes AND 2 then 'if its not a hidden folder
-
call makeMenu(HOME, FolderIndex.name, "qmparent")
-
call getSubFolders(FolderIndex)
-
end if
-
end if
-
next
-
pWrite("</UL>")
-
set MSubolders = nothing
-
-
-
'recursion ;)
-
public function getSubFolders(current_folder)
-
set MSubfolders = current_folder.SubFolders
-
pWrite("<UL>")
-
for each FolderIndex in MSubfolders
-
if Not FolderIndex.Attributes AND 2 then 'if its not a hidden folder
-
call makeMenu(HOME, FolderIndex.name, "qmchild")
-
call getSubFolders(FolderIndex) 'call itself to get all this folders sub folders. and so on till the end recursion()
-
end if
-
next
-
pWrite("</UL>")
-
end function
-
-
public function pWrite(str)
-
response.write str & vbcrlf
-
end function
-
-
'generalized function
-
public function makeMenu(Home, Link, className)
-
pWrite("<LI>")
-
pWrite("<a class=""" & className & """ href=""" & HOME & "?loc=/intranet/" & server.URLEncode((Link)) & """/>" & Link & "</a>")
-
pWrite("</LI>")
-
end function
-
%>
-
iam_clint 1,208
Recognized Expert Top Contributor
If you want the full path you can use something like this -
<%
-
Dim Home
-
Dim strTopath
-
Home="http://www.somewhere.com"
-
set fs=Server.CreateObject("Scripting.FileSystemObject")
-
set MainFolder=fs.GetFolder(Server.MapPath("/"))
-
set MSubfolders=MainFolder.SubFolders
-
pWrite("<UL>") 'add crlf to make it pretty
-
for each FolderIndex in MSubfolders
-
if Left(FolderIndex.name,1) <> "_" Then 'create menu items for all folders that do not start with an underscore
-
if Not FolderIndex.Attributes AND 2 then 'if its not a hidden folder
-
call makeMenu(HOME, fs.GetParentFolderName(FolderIndex) & "\" & FolderIndex.name, "qmparent", false)
-
call getSubFolders(FolderIndex)
-
end if
-
end if
-
next
-
pWrite("</UL>")
-
set MSubolders = nothing
-
-
-
'recursion ;)
-
public function getSubFolders(current_folder)
-
set MSubfolders = current_folder.SubFolders
-
pWrite("<UL>")
-
for each FolderIndex in MSubfolders
-
if Not FolderIndex.Attributes AND 2 then 'if its not a hidden folder
-
call makeMenu(HOME, fs.GetParentFolderName(FolderIndex) & "\" & FolderIndex.name, "qmchild", false)
-
call getSubFolders(FolderIndex)
-
end if
-
next
-
pWrite("</UL>")
-
end function
-
-
public function pWrite(str)
-
response.write str & vbcrlf
-
end function
-
-
'generalized function
-
public function makeMenu(Home, Link, className, showFullLogical)
-
if not showFullLogical then
-
link=replace(link, Request.ServerVariables("APPL_PHYSICAL_PATH"), "")
-
end if
-
pWrite("<LI>")
-
pWrite("<a class=""" & className & """ href=""" & HOME & "/" & server.URLEncode((Link)) & """/>" & Link & "</a>")
-
pWrite("</LI>")
-
end function
-
%>
-
Sign in to post your reply or Sign up for a free account.
Similar topics |
by: Dave |
last post by:
After following Microsofts admonition to reformat my system before doing a
final compilation of my app I got many warnings/errors upon compiling an rtf
file created in word. I used the Help...
|
by: Tom |
last post by:
A question for gui application programmers. . .
I 've got some GUI programs, written in Python/wxPython, and I've got
a help button and a help menu item. Also, I've got a compiled file
made with...
|
by: wukexin |
last post by:
Help me, good men. I find mang books that introduce bit "mang header
files",they talk too bit,in fact it is my too fool, I don't learn it, I have
do a test program, but I have no correct doing...
|
by: Colin J. Williams |
last post by:
Python advertises some basic service:
C:\Python24>python
Python 2.4.1 (#65, Mar 30 2005, 09:13:57) on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
With...
|
by: Corepaul |
last post by:
Missing Help Files
When I enter "recordset" as the keyword and search the Visual Basic Help index,
I get many topics of interest in the resulting list. But there isn't any
information available...
| |
by: Steve |
last post by:
I have written a help file (chm) for a DLL and referenced it using Help.ShowHelp
My expectation is that a developer using my DLL would be able to access this help file during his development time...
|
by: Mark |
last post by:
I have loaded Visual Studio .net on my home computer and my laptop, but my
home computer has an abbreviated help screen not 2% of the help on my laptop.
All the settings look the same on both...
|
by: JonathanOrlev |
last post by:
Hello everybody,
I wrote this comment in another message of mine, but decided to post it
again as a standalone message.
I think that Microsoft's Office 2003 help system is horrible, probably...
|
by: trunxnirvana007 |
last post by:
'UPGRADE_WARNING: Array has a new behavior. Click for more: 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
'UPGRADE_WARNING: Couldn't resolve...
|
by: hitencontractor |
last post by:
I am working on .NET Version 2003 making an SDI application that calls MS Excel 2003.
I added a menu item called "MyApp Help" in the end of the menu bar to show Help-> About.
The application...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
| |
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
| |
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The...
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |