如何获取磁盘剩余空间(包括光驱中的光盘)

原创 2013年12月03日 17:11:43

在网上找一个API,可以获取指定磁盘剩余空间,包括光驱中的光盘。

但是如果光驱中是空白光盘的话,将无法读取。因为空白光盘未格式化过,因此显示格式为RAW,所以无法读取。

至于如何读取空白光盘容量,我将在下一篇文章中描述。


获取磁盘剩余空间API:

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

下面是一个使用例子:

HRESULT GetDiskSpaceForDisc()
{
	float TotalBytes;
	float FreeBytesToCaller;
	float FreeBytes;  

	::GetDiskFreeSpaceEx(_T("I:"),  
		(PULARGE_INTEGER)&FreeBytesToCaller,  
		(PULARGE_INTEGER)&TotalBytes,  
		(PULARGE_INTEGER)&FreeBytes);  

	FreeBytesToCaller=(float)(((PULARGE_INTEGER)&FreeBytesToCaller)->HighPart<<2)+(float)((PULARGE_INTEGER)&FreeBytesToCaller)->LowPart/(1024*1024*1024);  
	TotalBytes=(float)(((PULARGE_INTEGER)&TotalBytes)->HighPart<<2)+(float)((PULARGE_INTEGER)&TotalBytes)->LowPart/(1024*1024*1024);  
	std::cout<<"totalspace:"<<TotalBytes<<"GB /n";
	std::cout<<"freespace:"<<FreeBytesToCaller<<"GB /n";

	return S_OK;
}





两种方法,获取磁盘剩余空间

From: https://yq.aliyun.com/articles/44828 import ctypes import os import platform import...
  • JoeBlackzqq
  • JoeBlackzqq
  • 2016年10月17日 11:22
  • 675

c++获取磁盘空间

众所周知,在微软的操作系统下编写应用程序,最主要的还是通过windows所提供的api函数来实现各种操作的,这些函数通常是可以直接使用的,只要包含windows.h这个头文件。   今天我们主要...
  • thdxs
  • thdxs
  • 2014年02月17日 22:16
  • 8342

[工具推荐] FTP 客户端 - yafc

参考: http://www.solidot.org/story?sid=40916
  • robertsong2004
  • robertsong2004
  • 2014年09月02日 15:59
  • 936

获取分区和磁盘大小

void PrintVolumeSpaceInfo(TCHAR* szRoot) { _ULARGE_INTEGER lpFreeBytesAvailableToCaller, lpTotalNum...
  • linfengmove
  • linfengmove
  • 2015年05月05日 14:37
  • 930

Linux看当前硬盘剩余空间

众所周知,Linux安装系统的时候要分区,主分区最多4个,如果有逻辑分区的话就最多3个主分区一个扩展分区,再在扩展分区上建逻辑分区 分区的时候,如果没有采用逻辑卷管理(LVM),创建的是普通分区的话...
  • shengxia1999
  • shengxia1999
  • 2016年08月02日 16:06
  • 18873

C++ 获得本地磁盘盘符的容量信息

ULARGE_INTEGER nFreeBytesAvailable; ULARGE_INTEGER nTotalNumberOfBytes; ULARGE_INTEGER nTotalNumbe...
  • oHanTanYanYing
  • oHanTanYanYing
  • 2014年05月02日 19:25
  • 1635

iOS获取设备剩余存储空间代码片段

首先需要引入相关的头文件,引入头文件代码如下: #include #include 获取剩余存储空间函数如下: + (NSString *) freeDiskSpaceInByt...
  • yhawaii
  • yhawaii
  • 2013年01月15日 09:37
  • 10769

windows下 c++ 检测磁盘可用空间

// HardDiskManager.h: interface for the CHardDiskManager class. // /////////////////////////////////...
  • xuyangcao123
  • xuyangcao123
  • 2017年11月17日 09:43
  • 104

android下的光盘功能控制

一 使能光盘功能 1. 1内核项中增加cd-rom文件系统的支持   alps/mediatek/config/xxxx/autoconfig/kconfig/project ...
  • TopicDev
  • TopicDev
  • 2014年06月26日 14:42
  • 2172

手把手教你使用 VirtualBox 挂载虚拟光驱

1 背景因为之前安装的 linux (centos7) 有些软件没有预装,所以需要通过挂载虚拟光驱,把 centos7 的安装包挂载进来,再安装需要的软件。2 实做1、虚拟机加载虚拟光驱登录后,依次选...
  • deniro_li
  • deniro_li
  • 2017年01月06日 16:49
  • 3657
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何获取磁盘剩余空间(包括光驱中的光盘)
举报原因:
原因补充:

(最多只允许输入30个字)