---
title: "Public Folders i Exchange"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/57968-public-folders-i-exchange"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Arne"
published: "2002-11-04T15:38:28.000Z"
updated: "2002-11-07T06:57:38.000Z"
replies: 7
views: 280
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/57968-public-folders-i-exchange"
---

# Public Folders i Exchange

## #1 — Arne, 2002-11-04T15:38Z

Detta script tar fram namnet på ”Min_Exchange_Folder”
I den foldern finns det under mappar som i sin tur har undermappar.
Hur kan jag ändra scriptet så den loopar namnet (skriver ut namnet) på alla foldrar/underfoldrar som ligger i min ”Min_Exchange_Folder”?

```

   strProfileInfo = strServer & vblf & strMailbox
   Set objSession = Server.CreateObject("MAPI.Session")
   objSession.Logon , , , False, , True, strProfileInfo
   Set objInfoStores = objSession.InfoStores

   For i = 1 To objInfoStores.Count
    If objInfoStores.Item(i)= "Public Folders" Then
       Set objInfoStore=objInfoStores.Item(i)
       Exit For
    End If
   Next

   bstrPublicRootID = objInfoStore.Fields.Item( &H66310102 ).Value
   Set objTopFolder = objSession.GetFolder(bstrPublicRootID, objInfoStore.ID)
   Set objFolders = objTopFolder.Folders
   Set objFolder = objFolders.GetFirst()

   Do Until objFolder.Name = "Min_Exchange_Folder"
    Set objFolder=objFolders.GetNext()
	Response.Write(objFolder.Name)
   Loop
```

Permalänk: https://www.webforum.nu/p/57968

## #2 — Jesper T, 2002-11-04T15:48Z

<http://www.webforum.nu/search.php?s=&action=showresults&searchid=127069&sortby=lastpost&sortorder=descending>
Du kanske kan hitta något?!

Permalänk: https://www.webforum.nu/p/844373

## #3 — Arne, 2002-11-04T21:21Z

help

Jag kom ett steg längre med koden:

```
 

   Set objSubFolder = objFolder
		For Each objSubFolder in objFolders
			Response.write objSubFolder.name & "<br>"
		next
```

 

Men hur får jag fram mapparna i objSubFolder och mapparna i den.

Min önskan är att lista objFolder och direkt nästa objSubFolder ock så vidare, tills jag kommit ner  4 nivåer

Sedan börja på nästa objSubFolder ......

Så det liknar i stort sett mappstrukturen i urforskaren om du öppnar alla plus.

Går detta eller ska jag slänga in handuken?

Permalänk: https://www.webforum.nu/p/844665

## #4 — PatrikB, 2002-11-05T07:31Z

Du får göra en funktion som har en folder-object som inparameter.
Denna funktion ska oxå vara rekursiv, dvs anropa sig själv:

```
Sub ListFolders(ByVal oFolders)

	Dim folder

	For Each folder IN oFolders
		Response.Write folder.Name & "<BR>"
		'## -- låt funktionen anropa sig själv för att hämta undermappar --
		Call ListFolders(folder.Name)
	Next
End Sub
```

ngt sådant .... 

du kan även från denna sida komma vidare: <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wss/wss/_exch2k_web_storage_system_search_folders.asp>

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/844814

## #5 — Arne, 2002-11-05T08:15Z

Anropa sig själv?

Oj, det lät avancerat

Sökte på msdn men fann inget som kunde lätta upp mina funderingar.

Skulle uppskatta väldans för ett exempel på hur:
"låt funktionen anropa sig själv för att hämta undermappar"

skulle tänkas kunna se ut (snälla:-)

Permalänk: https://www.webforum.nu/p/844823

## #6 — PatrikB, 2002-11-05T09:21Z

```
Sub ListFolders(ByVal oFolders)
	Dim folder
	For Each Folder IN oFolders
		'## --skriv ut aktuell folder --
		Response.Write Folder.Name

		'## -- låt denna sub anropa sig själv (rekursiv) för att komma åt under-kataloger --
		Call ListFolders(Folder)
	Next
End Sub

   strProfileInfo = strServer & vblf & strMailbox
   Set objSession = Server.CreateObject("MAPI.Session")
   objSession.Logon , , , False, , True, strProfileInfo
   Set objInfoStores = objSession.InfoStores

   For i = 1 To objInfoStores.Count
    If objInfoStores.Item(i)= "Public Folders" Then
       Set objInfoStore=objInfoStores.Item(i)
       Exit For
    End If
   Next

   bstrPublicRootID = objInfoStore.Fields.Item( &H66310102 ).Value
   Set objTopFolder = objSession.GetFolder(bstrPublicRootID, objInfoStore.ID)
   Set objFolders = objTopFolder.Folders
   Set objFolder = objFolders.GetFirst()

	Call ListFOlders(objFolders)
```

Du får testa dig fram. 
Nu kan du se hur en rekursiv sub/funktion fungerar ....... genom att anropa sig själv med ett annat objekt från kollektionen (objFolders)

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/844854

## #7 — PatrikB, 2002-11-05T09:34Z

Hittade lite kod på [msdn.microsoft.com](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdo/html/_olemsg_folders_collection_object.asp)

Kanske kandetta ge ngt:

```
Set objSession = Server.CreateObject("MAPI.Session") 
objSession.Logon "User", "", True 

	With objSession.Inbox.Folders 

		Set objFolder = .GetFirst

			Do While (Not objFolder = Nothing)
				Response.Write objFolder.Name & "<br />"

				Set objFolder = .GetNext
			Loop

		Set objFolder = Nothing
	End With
```

"utvecklade" koden från länken ovan lite .... ;)

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/844863

## #8 — Arne, 2002-11-07T06:57Z

tack

Tack för att du försökt hjälpa mig, men jag får tyvärr inte till det.
Jag får ge mig:-(

Permalänk: https://www.webforum.nu/p/846381

---

Tråden på webben: https://www.webforum.nu/amne/asp/57968-public-folders-i-exchange
