public static VolumeSpaceInfo GetInfo(string directory) { var ret = new VolumeSpaceInfo(); var res = WinApiFS.GetDiskFreeSpaceEx(directory, ref ret.FreeBytesAvailable, ref ret.TotalNumberOfBytes, ref ret.TotalNumberOfFreeBytes); if (res == 0) { var winErr = Marshal.GetLastWin32Error(); throw new System.ComponentModel.Win32Exception(winErr); } return(ret); }