Voiko joku kertoa miten saan selville määrätyn / määrättyjen kansioiden koko? Tarkoitukseni olisi laskea 3 kansion koko yhteen ja se tulos jaetaan niin pitkään kunnes naaman edessä on tulos megoina. Jos joku tietää niin olisi hyvä jos laittaisi koodin näkyviin tänne tai sitten eemeliä osoitteeseen jamma85@sunpoint.net.
Tämä koodinpätkä sisältää funktion HaeHakemistonKoko joka palauttaa halutun hakemiston tiedostojen yhteenlasketun koon. Esimerkissä haetaan hakemistojen c:\winnt\system32\, c:\winnt\ ja c:\ koot, lasketaan ne yhteen, ja ilmoitetaan MsgBox:issa.
Private Sub Form_Load() Dim koko As Long koko = koko + HaeHakemistonKoko("c:\winnt\system32") koko = koko + HaeHakemistonKoko("c:\winnt\") koko = koko + HaeHakemistonKoko("c:\") MsgBox "Hakemistojen koko on " & Round(koko / 1024 / 1024, 2) & " megatavua" End Sub Function HaeHakemistonKoko(hakemisto As String) As Long Dim tied As String, koko As Long tied = Dir(hakemisto, vbNormal) On Error Resume Next Do While tied <> "" koko = koko + FileLen(hakemisto & tied) Err = 0 tied = Dir Loop HaeHakemistonKoko = koko End Function
Kiitos paljon.
Öö... Mulla on problem.. siis toihan ei ota huomioon piilotiedostoja / kansioita ja alihakemistoja? Pistin C:\ ja se sanoi 0,01mb eli txt tiedoston verran joka siellä oli. Miten ton sais näyttämään koko kansion sisällön koon? Piilotiedostot ja kansiot mukaanluettuna.
Piilo- ja systeemitiedostot saat näkyviin vaihtamalla funktion toisen rivin muotoon:
tied = Dir(hakemisto, vbNormal + vbReadOnly + vbHidden + vbSystem)
Mutta kaikkien hakemiston alihakemistojen plaraamiseen tarvitaan jo kehittyneempää aliohjelmaa. Voin yrittää tehdä aiheesta jossain vaiheessa koodivinkin, jos aikaa on.
Etkös sä antti jo tehny sellasen joskus kuukausia sitten.. Alihakemistojen plaraamis algoritmin siis..
Juu onhan tuossa tuo alihakemistojen plaraaminen:
https://www.ohjelmointiputka.net/koodivinkit/
Sen kun yhdistää ylläolevaan koodinpätkään, niin sitten funktion pitäisi toimia täydellisesti.
Aihe on jo aika vanha, joten et voi enää vastata siihen.