public DiskSpaceInfo GetDiskSpaceInfo() { DiskSpaceInfo ret = new DiskSpaceInfo(); string result = conn.ExecuteSimple("df -h", 1500); string[] splitted = result.Split(new string[] { "\n" }, StringSplitOptions.None); foreach (string s in splitted) { if (s.StartsWith("/dev/nandc")) { string fs = s.Substring(0, 24).Trim(); string size = s.Substring(24, 6).Trim(); string used = s.Substring(30, 10).Trim(); string available = s.Substring(40, 10).Trim(); string pct = s.Substring(50, 6).Trim(); Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); ret.Size = decimal.Parse(size.Replace("M", "")); ret.Used = decimal.Parse(used.Replace("M", "")); ret.Available = decimal.Parse(available.Replace("M", "")); ret.PCT = decimal.Parse(pct.Replace("%", "")); break; } } return(ret); }
protected override void ProcessRecord() { var volumes = Alphaleonis.Win32.Filesystem.Volume.EnumerateVolumes(); if (driveLetter == null) { driveLetter = volumes.ToArray(); } foreach (var letter in driveLetter) { var diskSpaceInfo = new DiskSpaceInfo(letter); try { diskSpaceInfo.Refresh(); if (diskSpaceInfo.TotalNumberOfBytes > 0) { this.WriteObject(diskSpaceInfo); } } catch { this.WriteWarning(string.Format("Could not get drive details for '{0}'", letter)); } } }
public async Task SaveLoadDiskSpaceResultTest_Success() { var expected = new DiskSpaceInfo { SccmCacheSize = 12, TotalFreeDiskSpace = 123 }; var savedResult = await ComplianceInfo.SaveSystemComplianceItemResult <DiskSpaceInfo>(expected).ConfigureAwait(false); var actual = await DiskSpace.LoadDiskSpaceResult().ConfigureAwait(false); Assert.AreEqual(expected, actual); }
internal static DiskSpaceInfo GetWindowsDiskSpace(DirectoryInfo directoryInfo) { var result = new DiskSpaceInfo(); if (directoryInfo == null) { return(result); } try { var path = directoryInfo.FullName; var freeBytesAvailable = 0UL; var totalNumberOfBytes = 0UL; var totalNumberOfFreeBytes = 0UL; var success = Interop.Windows.GetDiskFreeSpaceExW( path, ref freeBytesAvailable, ref totalNumberOfBytes, ref totalNumberOfFreeBytes ); result.Path = path; if (success) { result.FreeOfBytes = (long)freeBytesAvailable; result.TotalOfBytes = (long)totalNumberOfBytes; result.TotalFreeOfBytes = (long)totalNumberOfFreeBytes; } } catch (Exception e) { Logger.GetInstance(typeof(FileSystemManager)).Error("Can not get Windows disk free space: " + e.Message); } return(result); }