public IEnumerable <DriveInfo> GetHDDUsage()
        {
            var result    = new List <DriveInfo>();
            var freeSpace = 0m;
            var total     = 0m;

            var drives = DF.Execute();

            foreach (var driveInfo in drives)
            {
                var driveNameAsString = "";
                if (driveInfo.TryGetValue("drive_name", out driveNameAsString))
                {
                }

                var driveTotalAsString = "";
                if (driveInfo.TryGetValue("drive_total", out driveTotalAsString))
                {
                    ulong driveTotalAsDecimal = 0;
                    if (ulong.TryParse(driveTotalAsString, out driveTotalAsDecimal))
                    {
                        total = driveTotalAsDecimal / BytesInMB;// B to MiB
                    }
                }

                var driveFreeAsString = "";
                if (driveInfo.TryGetValue("drive_free", out driveFreeAsString))
                {
                    ulong driveFreeAsDecimal = 0;
                    if (ulong.TryParse(driveFreeAsString, out driveFreeAsDecimal))
                    {
                        freeSpace = driveFreeAsDecimal / BytesInMB; // B to MiB
                    }
                }

                result.Add(new DriveInfo(driveNameAsString, (int)total, (int)freeSpace));
            }

            return(result);
        }