Avatar billede gadebarnet Nybegynder
09. februar 2004 - 15:58 Der er 3 kommentarer og
1 løsning

størrelse af folder inkl, ALT

ER der ikke en måde at tælle alle byte's i en folder?? inkl subfoldere osv..?
Avatar billede arne_v Ekspert
09. februar 2004 - 16:06 #1
Jeg lavede den her kode til et lignende spørgsmål for nogle måneder siden:

Imports System
Imports System.IO

Module Main
    Sub Main()
        Console.WriteLine(total("C:\WINNT"))
    End Sub
    Function total(dir As String) As Integer
        Dim res As Integer = 0
        Dim i As Integer
        Dim d As DirectoryInfo = new DirectoryInfo(dir)
        Dim allf As FileInfo() = d.GetFiles()
        For i = 0 To allf.Length - 1
            res = res + allf(i).Length
        Next
        Dim alld As DirectoryInfo() = d.GetDirectories()
        For i = 0 To alld.Length - 1
            res = res + total(alld(i).FullName)
        Next
        total = res
    End Function
End Module
Avatar billede yellow Nybegynder
09. februar 2004 - 16:07 #2
Du bliver nødt til at køre folderen gennem rekursivt:

Fra: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemiodirectoryclasstopic.asp

[Visual Basic]
' The following example calculates the size of a directory
' and its subdirectories, if any, and displays the total size
' in bytes.
Imports System
Imports System.IO
Imports Microsoft.VisualBasic



Public Class ShowDirSize

    Public Shared Function DirSize(ByVal d As DirectoryInfo) As Long
        Dim Size As Long = 0
        ' Add file sizes.
        Dim fis As FileInfo() = d.GetFiles()
        Dim fi As FileInfo
        For Each fi In fis
            Size += fi.Length
        Next fi
        ' Add subdirectory sizes.
        Dim dis As DirectoryInfo() = d.GetDirectories()
        Dim di As DirectoryInfo
        For Each di In dis
            Size += DirSize(di)
        Next di
        Return Size
    End Function 'DirSize

    Public Overloads Shared Sub Main(ByVal args() As String)
        If args.Length <> 1 Then
            Console.WriteLine("You must provide a directory argument at the command line.")
        Else
            Dim d As New DirectoryInfo(args(0))
            Console.WriteLine("The size of {0} and its subdirectories is {1} bytes.", d, DirSize(d))
        End If
    End Sub 'Main
End Class 'ShowDirSize
Avatar billede arne_v Ekspert
06. marts 2004 - 16:07 #3
Lukke tid ?
Avatar billede arne_v Ekspert
06. marts 2004 - 16:07 #4
Og et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester