---
title: "Katalog struktur."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/109385-katalog-struktur"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "jazzil"
published: "2004-08-16T18:06:46.000Z"
updated: "2004-08-18T14:22:00.000Z"
replies: 8
views: 409
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/dotnet/109385-katalog-struktur"
---

# Katalog struktur.

## #1 — jazzil, 2004-08-16T18:06Z

Tjena killar o tjejer.
Jag sitter här med ett problem som jag känner att jag inte är riktigt berädd att attakera praktiskt änu.

Frågan är hur sparar jag en oändlig katalog struktur i en fler dimensions array?

typ 

root är 
array\[0\]
fösta under mappen i root är  array\[0\]\[0\]
och osv.

Hur hur ska jag sen loopa ut allt på ett bra sätt...

Inga full lösningar kräves utan bara tips.

Tack!

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

## #2 — Pace, 2004-08-16T19:56Z

I stället för att utöka din dimension på din array bör du utöka indexet. Förslagsvis kan du skapa en egen class som du placerar i en arraylist.

Exepelvis (pseudokod): 

```
arraylist.Add(New CatalogItem("root/"))
arraylist.Add(New CatalogItem("subkatalog/"))
arraylist.Add(New CatalogItem("subkatalog2/"))
```

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

## #3 — renholm, 2004-08-16T20:08Z

Rekursiva funktioner brukar vara hjälpsamma i dessa lägen, dock vet jag inte om en flerdimensions array är bästa lösningen, arbetade förut med en form av katalogsystem där vi i stället för att använda en array använde två object, själva objektet innehållandes information, namn, beskrivning, etc; samt en collection. Såg ut ungefär så här:

```
class Katalog
{
   public string Name;
   public string Beskrivning;
   public KatalogCollection Kataloger;

   public Katalog(string path)
   {
      // hämta underkataloger
      Kataloger = new KatalogCollection(path);
   }
}

class KatalogCollection : CollectionBase
{
   // ...

   public KatalogCollection(string path)
   {
       // iterera genom katalogerna som finns tillgängliga och lägg till i Collection
       foreach(string catpath in GetCatalogs())
          List.Add(new Katalog(catpath);
       
   }
}
```

Används sedan enligt förljande:

```
Katalog root = new Katalog("c:\\");
string first = root.Kataloger[0].Namn; // första katalogen.
```

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

## #4 — jazzil, 2004-08-16T22:08Z

Tack!
Ska kolla på det återkommer om det blir problem.

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

## #5 — jazzil, 2004-08-17T15:21Z

Jag fick problem :)

foreach(string catpath in GetCatalogs())
	List.Add(new Katalog(catpath));  
Fel:  The name 'GetCatalogs' does not exist in the class or namespace 'ASPXGalleri.KatalogCollection'

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

## #6 — renholm, 2004-08-17T16:28Z

He, GetCatalogs var bara för att illustrera att det skulle vara en funktion för att hämta kataloger där. Om du vill ha en som fungerar så kika i System.IO namnutrymmet.

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

## #7 — jazzil, 2004-08-18T12:35Z

Jadu ... det var svårare än jag trodde..

```
Katalog root = new Katalog(Server.MapPath(ImageFolder));
error.Text = root.Kataloger[0].Namn;
```

Fel: Cannot apply indexing with \[\] to an expression of type 'ASPXGalleri.KatalogCollection'

```
	public class Katalog
	{
		public string Name;
		public string Beskrivning;
		public KatalogCollection Kataloger;

		public Katalog(string path)
		{
			Kataloger = new KatalogCollection(path);
		}
	}
	
	public class KatalogCollection : CollectionBase
	{
		public KatalogCollection(string path)
		{
			foreach(string catpath in Directory.GetDirectories(path))
				List.Add(new Katalog(catpath));       
		}
	}
```

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

## #8 — renholm, 2004-08-18T12:46Z

I KatalogCollection saknas en del för att kunna använda den fullt ut.

```
public Katalog this[int Index]
{
   get { return (Katalog)List[Index]; }
   set { List[Index] = value; }
}
```

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

## #9 — jazzil, 2004-08-18T14:22Z

Tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/109385-katalog-struktur
