Foldersize

kejpa

Well-known member
Joined
Oct 10, 2003
Messages
320
Hi all,
how do you get the size of a folder in vb.net?
With vb6 you could use the FileSystemObject and...
Code:
    Set fso = New FileSystemObject
    Set fsoFolder = fso.GetFolder(sPath)
    lDirSize = Val(fsoFolder.Size)
isnt there a better way nowadays?

/Kejpa
 
kejpa

This is from .NET documentation (for C#). Hope it helps a bit.

Code:
// The following example calculates the size of a directory
// and its subdirectories, if any, and displays the total size
// in bytes.

using System;
using System.IO;

public class ShowDirSize 
{
    public static long DirSize(DirectoryInfo d) 
    {    
        long Size = 0;    
        // Add file sizes.
        FileInfo[] fis = d.GetFiles();
        foreach (FileInfo fi in fis) 
        {      
            Size += fi.Length;    
        }
        // Add subdirectory sizes.
        DirectoryInfo[] dis = d.GetDirectories();
        foreach (DirectoryInfo di in dis) 
        {
            Size += DirSize(di);   
        }
        return(Size);  
    }
    public static void Main(string[] args) 
    {
        if (args.Length != 1) 
        {
            Console.WriteLine("You must provide a directory argument at the command line.");    
        } 
        else 
        {  
            DirectoryInfo d = new DirectoryInfo(args[0]);
            Console.WriteLine("The size of {0} and its subdirectories is {1} bytes.", d, DirSize(d));
        }
    }
}

BOZ
 
Back
Top