获取磁盘容量方法 C#/C++

  • C#方法

    string driveName =
    "C:\\";

    System.IO.DriveInfo[] drivers = System.IO.DriveInfo.GetDrives();

    foreach (var drive in drivers)

    {

    if
    (driveName == drive.Name)

    Console.WriteLine(drive.TotalFreeSpace / (1024 *
    1024
    *
    1024
    *
    1.0f) +
    "G");

    }

    C#只能一次性获取所有的磁盘,所以如果指定某个磁盘的话则需要进行判断,并且获取到的空间单位为字节(Byte)

  • C++方法

    DWORD64 qwFreeBytes, qwFreeBytesToCaller, qwTotalBytes;

    bResult =
    GetDiskFreeSpaceEx(TEXT("C:"),

    (PULARGE_INTEGER)&qwFreeBytesToCaller,

    (PULARGE_INTEGER)&qwTotalBytes,

    (PULARGE_INTEGER)&qwFreeBytes);

    if (bResult)

    {

    cout <<
    "Use GetDiskFreeSpaceEx"
    << endl;

    cout <<
    "Total Byte: "
    << qwTotalBytes << endl;

    cout <<
    "FreeByte: "
    << qwFreeBytes << endl;

    cout <<
    "FreeByte available: "
    << qwFreeBytesToCaller << endl;

    cout <<
    "Free G is "
    << qwFreeBytesToCaller /
    1024
    /
    1024
    /
    1024
    *
    1.0f << endl;

    }

    GetDiskFreeSpaceEx 函数在MSDN上解释

    BOOL WINAPI GetDiskFreeSpaceEx(
    _In_opt_  LPCTSTR         lpDirectoryName,
    _Out_opt_ PULARGE_INTEGER lpFreeBytesAvailable,
    _Out_opt_ PULARGE_INTEGER lpTotalNumberOfBytes,
    _Out_opt_ PULARGE_INTEGER lpTotalNumberOfFreeBytes
    );

    GetDiskFreeSpaceEx获取到的数据单位同样为Byte

时间: 2024-10-20 20:21:10

获取磁盘容量方法 C#/C++的相关文章

C# 获取磁盘容量

原文:C# 获取磁盘容量 /// 获取指定驱动器的空间总大小(单位为B) /// </summary> /// <param name="str_HardDiskName">只需输入代表驱动器的字母即可 </param> /// <returns> </returns> public static long GetHardDiskSpace(string str_HardDiskName) { long totalSize=

使用HD/IDE层的ioctl接口获取磁盘容量get_hdd_max_sector

利用HD/IDE layer的ioctl函数接口获取HD/IDE的磁盘容量.HDIO_DRIVE_TASK  能发出访问LBA地址的命令,但不能读写数据. #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <linux/hdreg.h> #include <linux/types.h> #include <

windows程序设计 获取磁盘容量

//磁盘分区的总容量(字节)=总簇数*每簇扇区数*每扇区字节数 //磁盘分区的空闲空间(字节)=空闲簇数*每簇扇区数*每扇区字节数 BOOL GetDiskFreeSpace( LPCTSTR lpRootPathName,//指向所要获取磁盘空间信息的磁盘分区根路径字符串 LPDWORD lpSectorsPerCluster,//指向存储每簇扇区数的DWORD类型变量 LPDWORD lpBytesPerSector,//指向存储每扇区字节数的DWORD类型变量 LPDWORD lpNumb

Qt获取电脑磁盘容量

项目中用到了监测某磁盘(如:C盘.D盘等)的总容量和可用容量,查了一下,发现其实挺简单,调用一个Windows自带的API:GetDiskFreeSpaceEx( ... )就可以解决.用Qt做了一个测试例子,如下所示.??另:测试发现,如果给定路径不存在(如程序中"F:\"),则获取不到信息:通常给定用以获取磁盘容量信息的路径为"C:\"."D:\"等,但给定已存在路径(如程序中"D:\Test"),同样可以获取到该路径所属

Win10“此电脑”无法显示磁盘容量的解决方法

正常情况,用户打开Windows10系统"此电脑"后,都会直接看到磁盘容量.不过,最近有的朋友反馈"此电脑"只有图标没有显示可用空间,容量等信息,这该怎么办呢?下面,就随系统城小编看看Win10"此电脑"无法显示磁盘容量的解决方法. 具体如下: 原因是用户选择错误的查看方式,其实只要更改查看方式为"平铺"就可以了,如下图: 容量显示又回来了. 以上就是老 虎机系统城小编为大家介绍的Win10"此电脑"无法显

学习API之获取磁盘信息

#include <windows.h>#include <stdio.h> /************************************* BOOL GetDiskSpaceInfo(LPSTR pszDrive)* 功能:根据输入磁盘驱动器,获取磁盘信息* 参数:LPSTR pszDrive 驱动器根路径,如 D:************************************/ BOOL GetDiskSpaceInfo(LPSTR pszDrive){

LVM---动态调整磁盘容量

LVM:logical volume manager(逻辑卷管理):LVM屏蔽了底层磁盘布局,方便于动态调整磁盘容量. 一.创建逻辑卷的步骤: 1)通过fdisk 工具将磁盘转换为linux分区 2)通过pvcreate命令将linux分区转换成物理卷(PV): 3)通过vgcreate命令将创建好的物理卷处理成卷组(VG): 4)通过lvcreate命令将卷组分成若干个逻辑卷(LV): 5)对逻辑卷进行格式化,挂载,动态调整逻辑卷的大小,并且该操作不会影响逻辑卷(Lv)上的数据. 二.物理卷(

磁盘容量

#include <Windows.h> #include <stdio.h> int main() { BOOL bResult; // 簇 DWORD dwTotalClusters; // 扇区 DWORD dwSectPerClust; // 字节 DWORD dwBytesPerSect; // 空闲簇 DWORD dwFreeClusters; bResult = GetDiskFreeSpace(TEXT("C:"),&dwSectPerC

ASP.NET获取路径的方法

原文:[转载]ASP.NET获取路径的方法 HttpContext.Current.Request.PhysicalPath;    // 获得当前页面的完整物理路径.比如 F:\XFU.NSQS\project\website\Default.aspxHttpContext.Current.Request.PhysicalApplicationPath; // 获得当前程序运行的物理路径比 如F:\XFU.NSQS\project\website\HttpContext.Current.Ser