zoukankan      html  css  js  c++  java
  • Calculate drive total/free/available space

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Text;

    namespace ConsoleApplication5
    {
        class Program
        {
            static void Main(string[] args)
            {
                long? systemTotalSpace = GetDriveTotalSpace(Path.GetPathRoot(Environment.SystemDirectory));
                long? systemAvailableSpace = GetDriveFreeSpace(Path.GetPathRoot(Environment.SystemDirectory));
                long? remoteAvailableSpace = GetDriveOccupiedSpace(Path.GetPathRoot(Environment.SystemDirectory));

                if(systemTotalSpace.HasValue)
                    Console.WriteLine("C: total space " + ConvertBytesToGString(systemTotalSpace.Value));

                if (systemAvailableSpace.HasValue)
                    Console.WriteLine("C: free space " + ConvertBytesToGString(systemAvailableSpace.Value));

                if (remoteAvailableSpace.HasValue)
                    Console.WriteLine("C: occupied space " + ConvertBytesToGString(remoteAvailableSpace.Value));

                Console.ReadKey();
            }

            static string ConvertBytesToGString(long size)
            {
                string[] Suffix = { "b", "K", "M", "G", "T" };
                const long Unit = 1024;

                int sIndex = 0;
                decimal dSize = new decimal(size);

                while (dSize > Unit)
                {
                    dSize = dSize / Unit;

                    sIndex++;
                }

                return string.Format("{0} {1} ", Math.Round(dSize, 2), Suffix[sIndex]);
            }

            static long? GetDriveOccupiedSpace(string driveName)
            {
                DriveInfo[] allDrives = DriveInfo.GetDrives();

                foreach (DriveInfo d in allDrives)
                {
                    if (d.Name.Equals(driveName, StringComparison.OrdinalIgnoreCase))
                    {
                        return d.TotalSize - d.TotalFreeSpace;
                    }
                }

                return null;
            }
            static long? GetDriveTotalSpace(string driveName)
            {
                DriveInfo[] allDrives = DriveInfo.GetDrives();

                foreach (DriveInfo d in allDrives)
                {
                    if (d.Name.Equals(driveName, StringComparison.OrdinalIgnoreCase))
                    {
                        return d.TotalSize;
                    }
                }

                return null;
            }


            static long? GetDriveFreeSpace(string driveName)
            {
                DriveInfo[] allDrives = DriveInfo.GetDrives();

                foreach (DriveInfo d in allDrives)
                {
                    if (d.Name.Equals(driveName, StringComparison.OrdinalIgnoreCase))
                    {
                        return d.AvailableFreeSpace; //Available free space for current user
                    }
                }

                return null;
            }
        }
    }

  • 相关阅读:
    浅谈LBS(基于位置的服务)
    MapBar地图更新啦
    推荐一款软件:Global Mapper
    51ditu、清华地图以及Google地图
    极索(Gsuo)推出新版地图采用Gmap设计思路
    公告:Rover's Official Blog停止更新
    最后的礼物:校园多媒体系统和校园WEBGIS系统
    JAVA中最常用的十个快捷键
    启程去旅行 android之merge布局 http://www.cnblogs.com/travelfromandroid/articles/2133206.html
    Http 范例
  • 原文地址:https://www.cnblogs.com/sskset/p/3580620.html
Copyright © 2011-2022 走看看