Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


En mapps storlek

Postades av 2002-03-12 18:46:50 - Larz Eidwall, i forum visual basic - allmänt, Tråden har 8 Kommentarer och lästs av 464 personer

Jag hittade följande kod på Tips & tricks som skall peräkna en mapps storlek, inklusive undermappar. Jag får den dock bara att kolla filerna i mappen och ej dess underkataloger. Skall något ändras eller läggas till ?

Dim FileName As String
Dim FileSize As Currency
Dim Directory As String
Directory = Text2.Text 'Ange i vilken katalog du vill beräkna storleken
FileName = Dir$(Directory & "*.*")
FileSize = 0 ' Sätter filstorleken till 0
Do While FileName <> "" ' Startar Loop
FileSize = FileSize + FileLen(Directory & FileName)
FileName = Dir$ ' Hämtar Info
Loop
Text1.Text = "Totalt använda byte(s) = " + Str$(FileSize)


Svara

Sv: En mapps storlek

Postades av 2002-03-13 14:09:51 - Per Johansson

Du måsta avsluta med "\"

Så text2.text ="C:\Program\Microsoft Visual Studio\" ' <---
tD


Svara

Sv: En mapps storlek

Postades av 2002-03-25 10:52:18 - Larz Eidwall

Om jag inte lägger till \ så får jag svaret 0 byte, men om jag lägger till \ så returnerar programmet dock bara filerna direkt under sökvägen och kollar inte alla underkataloger så det räcker inte med att lägga till \


Svara

Sv: En mapps storlek

Postades av 2002-03-25 19:28:18 - Andreas Hillqvist

Har skrivit om det till en funktionen som även hantera underliggande kataloger:
<code>
Public Function DirSize(ByVal Directory As String) As Currency
Dim FileName As String
Dim SubDirs() As Variant
Dim Count As Long
Dim Index As Long
FileName = Dir$(Directory & "*.*", vbDirectory)
If FileName = "." Then
Dir$ '..
FileName = Dir$
End If
Do While Len(FileName)
FileName = Directory & FileName
If GetAttr(FileName) And vbDirectory Then
ReDim Preserve SubDirs(Count)
SubDirs(Count) = FileName & "\"
Count = Count + 1
Else
DirSize = DirSize + FileLen(FileName)
End If
FileName = Dir$()
Loop
If Count Then
For Index = 0 To Count - 1
DirSize = DirSize + DirSize(SubDirs(Index))
Next
End If
End Function
</code>

Reviderad 2002-07-09 01:17
Hanterar nu även root. Vilket dir och dir$ inte retunerar "." och "..".


Svara

Sv: En mapps storlek

Postades av 2002-03-26 09:29:36 - Larz Eidwall

Tack Andreas men var ska jag lägga koden. Ska jag använda den tillsammans med min gamla kod. Jag har provat att infoga en ny modul och lägga koden där och jag har infogat den under General men inget fungerar. Underkatalogerna kommer inte med.


Svara

Sv: En mapps storlek

Postades av 2002-03-26 10:26:33 - Andreas Hillqvist

Lägg koden i en modul. Anropa den så här från formuläret på(ersätt gammal kod):
<code>
Text1.Text = "Totalt använda byte(s) = " & DirSize(Text2.Text)
</code>


Svara

Sv: En mapps storlek

Postades av 2002-03-26 10:40:08 - Larz Eidwall

Tack så hemskt mycket. Nu fungerade allt perfekt.
Larz


Svara

Sv: En mapps storlek

Postades av 2002-03-26 10:50:05 - Per Johansson

Kannon funktion, tack Andreas!
Byggde ut den lite till för eget bruk, här är den.

Public Enum unUnit
unByte = 0
unKb = 1
unMB = 2
End Enum

Public Function DirSize(ByVal Directory As String, Optional nUnit As unUnit) As Currency
Dim FileName As String
Dim SubDirs() As Variant
Dim Count As Long
Dim Index As Long
Dim nRetVal As Currency

Dir$ Directory & "*.*", vbDirectory '.
Dir$ '..
FileName = Dir$
Do While Len(FileName)
FileName = Directory & FileName
If GetAttr(FileName) And vbDirectory Then
ReDim Preserve SubDirs(Count)
SubDirs(Count) = FileName & "\"
Count = Count + 1
Else
DirSize = DirSize + FileLen(FileName)
End If
FileName = Dir$()
Loop
If Count Then
For Index = 0 To Count - 1
DirSize = DirSize + DirSize(SubDirs(Index))
Next
End If

Select Case nUnit
Case 0
DirSize = DirSize
Case 1
DirSize = DirSize / 1024
Case 2
DirSize = DirSize / 1048576
End Select

End Function

Private Sub Command1_Click()

Dim Directory As String
Directory = "D:\Mapp\"

Label1.Caption = DirSize(Directory, unByte)
Label2.Caption = Format(DirSize(Directory, unKb), "0.0")
Label3.Caption = Format(DirSize(Directory, unMB), "0.0")

End Sub


Svara

Sv: En mapps storlek

Postades av 2002-03-26 21:26:40 - Andreas Hillqvist

Varsegod. Kom på idén när ni postade era inlägg. Det är ju problematiskt att använda dir funktionen i en rekursiv funktion. Var därför tvungen att lagra dem i en array. För att sedan anropa funktionen med dessa.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 644
27 953
271 710
12 046
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies