473,480 Members | 1,576 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

fso help

1 New Member
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?

Expand|Select|Wrap|Line Numbers
  1. <%
  2.   for each FolderIndex in MSubfolders
  3.   'create menu items for all folders that do not start with an underscore
  4.     if Left(FolderIndex.name,1) <> "_" Then
  5.       response.write ("<li><a class='qmparent' href=" & (HOME) & "?loc=/intranet/" & Replace ((FolderIndex.name)," ","%20") & "/>" & (FolderIndex.name) & "</a>")
  6.         MSubpath = Server.MapPath(FolderIndex.name)
  7.         MSubfolder = FSO.GetFolder(MSubpath)
  8.         MSubfolders = MSubfolder.SubFolders
  9.         if (MSubfolders.count > 1) then
  10.           response.write("<ul>")
  11.           for each MSubfolderIndex in MSubfolders
  12.             if Left(MSubfolderIndex.name,1) <>"_" Then
  13.             response.write("<li><a href=" & (HOME) & "?loc=/intranet/" & Replace((FolderIndex.name)," ","%20") & "/" & Replace(Replace(MSubfolderIndex.name," ","%20"),"&","&amp;") & "/>" & (MSubfolderIndex.name) & "</a></li>")
  14.           End If
  15.           next
  16.           response.write("</ul>")
  17.         End If
  18.         MSubfolders = nothing
  19.         response.write ("</li>")
  20.       End If
  21.       next
  22.     MSubolders = nothing
  23. %>
  24.  
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
Expand|Select|Wrap|Line Numbers
  1. Replace(Replace((FolderIndex.name)," ","%20"),"&","&amp;")
to replace both ampersands and blank spaces, but it wouldn't work. Any ides?

Thanks for looking this over!
Oct 14 '08 #1
3 1745
JamieHowarth0
533 Recognized Expert Contributor
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
Oct 15 '08 #2
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
Expand|Select|Wrap|Line Numbers
  1. <%
  2. Dim Home
  3. Home="www.somewhere.com"
  4. set fs=Server.CreateObject("Scripting.FileSystemObject")
  5. set MainFolder=fs.GetFolder(Server.MapPath("/"))
  6. set MSubfolders=MainFolder.SubFolders
  7. pWrite("<UL>") 'add crlf to make it pretty
  8. for each FolderIndex in MSubfolders 
  9.     if Left(FolderIndex.name,1) <> "_" Then 'create menu items for all folders that do not start with an underscore 
  10.         if Not FolderIndex.Attributes AND 2 then 'if its not a hidden folder
  11.             call makeMenu(HOME, FolderIndex.name, "qmparent")
  12.             call getSubFolders(FolderIndex)
  13.         end if
  14.     end if
  15. next 
  16. pWrite("</UL>")
  17. set MSubolders = nothing 
  18.  
  19.  
  20. 'recursion ;)
  21. public function getSubFolders(current_folder)
  22.     set MSubfolders = current_folder.SubFolders 
  23.     pWrite("<UL>")            
  24.     for each FolderIndex in MSubfolders 
  25.         if Not FolderIndex.Attributes AND 2 then 'if its not a hidden folder
  26.             call makeMenu(HOME, FolderIndex.name, "qmchild")    
  27.             call getSubFolders(FolderIndex) 'call itself to get all this folders sub folders. and so on till the end recursion()
  28.          end if
  29.     next    
  30.     pWrite("</UL>")            
  31. end function
  32.  
  33. public function pWrite(str)
  34.     response.write str & vbcrlf
  35. end function    
  36.  
  37. 'generalized function
  38. public function makeMenu(Home, Link, className)
  39.         pWrite("<LI>")
  40.         pWrite("<a class=""" & className & """ href=""" & HOME & "?loc=/intranet/" & server.URLEncode((Link)) & """/>" & Link & "</a>") 
  41.         pWrite("</LI>")
  42. end function
  43. %>
  44.  
Oct 20 '08 #3
iam_clint
1,208 Recognized Expert Top Contributor
If you want the full path you can use something like this
Expand|Select|Wrap|Line Numbers
  1. <%
  2. Dim Home
  3. Dim strTopath
  4. Home="http://www.somewhere.com"
  5. set fs=Server.CreateObject("Scripting.FileSystemObject")
  6. set MainFolder=fs.GetFolder(Server.MapPath("/"))
  7. set MSubfolders=MainFolder.SubFolders
  8. pWrite("<UL>") 'add crlf to make it pretty
  9. for each FolderIndex in MSubfolders 
  10.     if Left(FolderIndex.name,1) <> "_" Then 'create menu items for all folders that do not start with an underscore 
  11.         if Not FolderIndex.Attributes AND 2 then 'if its not a hidden folder
  12.             call makeMenu(HOME, fs.GetParentFolderName(FolderIndex) & "\" & FolderIndex.name, "qmparent", false)
  13.             call getSubFolders(FolderIndex)
  14.         end if
  15.     end if
  16. next 
  17. pWrite("</UL>")
  18. set MSubolders = nothing 
  19.  
  20.  
  21. 'recursion ;)
  22. public function getSubFolders(current_folder)
  23.     set MSubfolders = current_folder.SubFolders 
  24.     pWrite("<UL>")        
  25.     for each FolderIndex in MSubfolders 
  26.         if Not FolderIndex.Attributes AND 2 then 'if its not a hidden folder
  27.                 call makeMenu(HOME, fs.GetParentFolderName(FolderIndex) & "\" & FolderIndex.name, "qmchild", false)    
  28.                 call getSubFolders(FolderIndex)
  29.          end if
  30.     next    
  31.     pWrite("</UL>")
  32. end function
  33.  
  34. public function pWrite(str)
  35.     response.write str & vbcrlf
  36. end function    
  37.  
  38. 'generalized function
  39. public function makeMenu(Home, Link, className, showFullLogical)
  40.         if not showFullLogical then
  41.             link=replace(link, Request.ServerVariables("APPL_PHYSICAL_PATH"), "")
  42.         end if
  43.         pWrite("<LI>")
  44.         pWrite("<a class=""" & className & """ href=""" & HOME & "/" & server.URLEncode((Link)) & """/>" & Link & "</a>") 
  45.         pWrite("</LI>")
  46. end function
  47. %>
  48.  
Oct 20 '08 #4

Sign in to post your reply or Sign up for a free account.

Similar topics

21
6480
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...
9
4368
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...
6
4297
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...
3
3311
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...
7
5336
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...
5
3242
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...
8
3198
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...
10
3322
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...
1
6105
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...
0
2839
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...
0
7044
marktang
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,...
0
6908
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...
1
6741
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...
0
6944
tracyyun
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...
0
5341
agi2029
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,...
1
4782
isladogs
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...
0
4483
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...
0
2995
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...
1
563
muto222
php
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.