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 访问权限
"sample"目录中。

[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 应用]
目标平台 Windows
标头 fileapi.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

磁盘管理函数

GetDiskFreeSpace

GetModuleHandle