Toon posts:

[VB.NET]Directory listen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik moet een prog maken dat directories groepeert naargelang de grootte. Het is de bedoeling dat de user een directory ingeeft in een tekstvak en dat vervolgens alle directories getoond worden die juist onder de opgegeven dir liggen van groot naar klein.

Bv. als ik c:\ intik en c:\program files is het grootste dan moet deze dir eerst getoond worden in een listbox, belangrijk is dat de bestanden in de subdirs ook meegeteld worden. c:\program files\oracle mag dus niet getoond worden!

Heeft er iemand enig idee hoe ik hier aan moet beginnen? Ik kan wel de grootste bestanden tonen maar met directories lukt het niet hier...

[ Voor 5% gewijzigd door Verwijderd op 25-03-2004 15:00 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
Functie maken die alle subdirectories van de opgegeven directory overloopt, en daar de bestandsgrootte van alle bestanden gaat gaan optellen, incl. de subdirectories van die subdirectory, etc.....
Recursie dus.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ja maar dat is net het probleem, ik kan alle bestanden van bv c:\program files opvragen en de grootte bepalen maar ik heb geen flauw gedacht hoe je kunt weten of je met een subdir te maken hebt van program files of terug met een hoofddir op c:\

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
Je zult met recursie aan de slag moeten:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double GetSizeOfDir ( string aDir )
{
     totalSize = 0;

    foreach( file in this dir )
    {
          totalSize += file.Size;
    }

    foreach( dir in thisdir )
    {
       totalSize += GetSizeOfDir (dir);
    }
}


Op die manier kan je van 1 directory die je opgeeft, de totale grootte berekeken, incl. de subdirectories dus.

Dan maak je gewoon nog een routine die die een directory als argument neemt, en voor iedere subdir van die directory roep je bovenstaande method aan. Dan heb je voor iedere subdir van de opgegeven dir de grootte.

https://fgheysels.github.io/