Search code examples
filesystemsclrdirectory

File Path/size in C#


How to get the File Directory of a file (C:\myfolder\subfoler\mydoc.pdf). I also want to add the size of the subfolders, and finally the main folder size. This is for a .NET CLR that I need to integrate with SQL Server 2005 for a SSRS report.


Solution

  • You can use GetDirectoryName, to get only the directory path of the file:

    using System.IO;
    string directoryName = Path.GetDirectoryName(@"C:\myfolder\subfolder\mydoc.pdf");
    // directoryName now contains "C:\myfolder\subfolder"
    

    For calculating the directory and subdirectory size, you can do something like this:

    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);  
    }