GetDiskFreeSpaceExA 函数 (fileapi.h)

检索有关磁盘卷上可用空间量的信息,即总空间量、可用空间总量以及与调用线程关联的用户可用的可用空间总量。

语法

BOOL GetDiskFreeSpaceExA(
  [in, optional]  LPCSTR          lpDirectoryName,
  [out, optional] PULARGE_INTEGER lpFreeBytesAvailableToCaller,
  [out, optional] PULARGE_INTEGER lpTotalNumberOfBytes,
  [out, optional] PULARGE_INTEGER lpTotalNumberOfFreeBytes
);

参数

[in, optional] lpDirectoryName

磁盘上的目录。

如果此参数 NULL,则该函数使用当前磁盘的根目录。

如果此参数是 UNC 名称,则必须包含尾随反斜杠,例如“\\MyServer\MyShare\”。

此参数不必在磁盘上指定根目录。 该函数接受磁盘上的任何目录。

调用应用程序必须对此具有 FILE_LIST_DIRECTORY 访问权限
目录。

[out, optional] lpFreeBytesAvailableToCaller

指向一个变量的指针,该变量接收与调用线程关联的用户可用的磁盘上的可用字节总数。

此参数可以 NULL

如果使用每用户配额,此值可能小于磁盘上的可用字节总数。

[out, optional] lpTotalNumberOfBytes

指向一个变量的指针,该变量接收与调用线程关联的用户可用的磁盘上的字节总数。

此参数可以 NULL

如果使用每用户配额,此值可能小于磁盘上的字节总数。

若要确定磁盘或卷上的字节总数,请使用 IOCTL_DISK_GET_LENGTH_INFO

[out, optional] lpTotalNumberOfFreeBytes

指向接收磁盘上可用字节总数的变量的指针。

此参数可以 NULL

返回值

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零(0)。 若要获取扩展的错误信息,请调用 GetLastError

言论

此函数获取的值的类型为 ULARGE_INTEGER。 不要将这些值截断为 32 位。

GetDiskFreeSpaceEx 函数为 lpTotalNumberOfFreeBytes 返回零(0),并且 所有 CD 请求的 lpFreeBytesAvailable,除非磁盘是 CD-RW 驱动器中的未写入 CD。

符号链接行为 - 如果路径指向符号链接,则对目标执行操作。

注意

fileapi.h 标头将 GetDiskFreeSpaceEx 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [桌面应用 |UWP 应用]
支持的最低服务器 Windows Server 2003 [桌面应用 |UWP 应用]
目标平台 窗户
标头 fileapi.h (包括 Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

磁盘管理功能

GetDiskFreeSpace

GetModuleHandle