Get the available free disk space for this path in Windows

Possible duplicate:
Software Defined Space Available Through UNC Path

I am trying to find a function that I can call from C # to get this information. This is what I have tried so far:

String folder = "z:\myfolder"; // It works folder = "\\mycomputer\myfolder"; // It doesn't work System.IO.DriveInfo drive = new System.IO.DriveInfo(folder); System.IO.DriveInfo a = new System.IO.DriveInfo(drive.Name); long HDPercentageUsed = 100 - (100 * a.AvailableFreeSpace / a.TotalSize); 

This works fine, but only if I pass the drive letter. Is there a way to get free space, going all the way?

Thank.

+13
c # windows
Jan 22 '13 at 18:07
source share
1 answer

Try using the winapi function GetDiskFreeSpaceEx :

 [DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool GetDiskFreeSpaceEx(string lpDirectoryName, out ulong lpFreeBytesAvailable, out ulong lpTotalNumberOfBytes, out ulong lpTotalNumberOfFreeBytes); ulong FreeBytesAvailable; ulong TotalNumberOfBytes; ulong TotalNumberOfFreeBytes; bool success = GetDiskFreeSpaceEx(@"\\mycomputer\myfolder", out FreeBytesAvailable, out TotalNumberOfBytes, out TotalNumberOfFreeBytes); if(!success) throw new System.ComponentModel.Win32Exception(); Console.WriteLine("Free Bytes Available: {0,15:D}", FreeBytesAvailable); Console.WriteLine("Total Number Of Bytes: {0,15:D}", TotalNumberOfBytes); Console.WriteLine("Total Number Of FreeBytes: {0,15:D}", TotalNumberOfFreeBytes); 
+24
Jan 22 '13 at 18:12
source share



All Articles