Tässä mahdollisimman lyhyt listaus levyaseman tai tietyn hakemiston kaikkien alihakemistojen etsimiseen. Ohjelma toimii myös esimerkkinä rekursiivisen eli itseään kutsuvan aliohjelman teosta. Formilla tulee olla ListBox (List1), johon alihakemistot tulostuvat.
Lopuksi vielä varoituksen sana: suurilla levyasemilla kaikkien alihakemistojen etsiminen saattaa kestää todella kauan. Ja tarvittaessa ohjelman voi keskeyttää painamalla Control+Break.
'Huom! Suurilla levyasemilla ohjelman suoritus kestää k a u a n Private Sub Form_Load() asema$ = "D:\" 'haettava levyasema/hakemisto List1.AddItem asema$ HaeAliHakemistot asema$, 0 End Sub Sub HaeAliHakemistot(hak$, kerros%) kerros% = kerros% + 1 ReDim hakemistot(255) As String x$ = Dir(hak$, vbDirectory) Do While x$ <> "" If GetAttr(hak$ + x$) = vbDirectory And Left$(x$, 1) <> "." Then haki% = haki% + 1 hakemistot(haki%) = x$ End If x$ = Dir Loop For i = 1 To haki% List1.AddItem String$(kerros% * 3, "-") + hakemistot(i) HaeAliHakemistot hak$ + hakemistot(i) + "\", kerros% Next kerros% = kerros% - 1 DoEvents 'haun voi keskeyttääkin End Sub
Ei listaa Hidden / System / Read Only hakemistoja
jep
ööö.. ohjelma valittaa jostain ihmeellisestä asiasta. Olisko mahdollista että pistäisit projektin linkin tohon tai jotain.
Wau!!!! Kätevä
Aihe on jo aika vanha, joten et voi enää vastata siihen.