Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
                }
            }
        }
Exemplo n.º 3
0
        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);
        }