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 SubEi 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.