磁盘操作相关函数

1、GetLogicalDriveStrings 函数

简介:
GetLogicalDriveStrings,获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径。

声明:
DWORD GetLogicalDriveStrings(
  DWORD  nBufferLength,
  LPTSTR lpBuffer
);

参数:
nBufferLength:
lpBuffer 指针指向的字符串缓冲区的以 TCHAR 字符为单位的最大长度,不包括结尾的 0 结束符。如果该参数传递0,lpBuffer 就没有用处了。

lpBuffer:
指向一个字符串缓冲区的首地址,用于接收返回的字符串内容,每个驱动器之间以1个0结束符为间隔,总体结束以2个0结束符为标志。

返回值:
如果函数执行成功,返回实际拷贝到 lpBuffer 指针指向的字符串缓冲区的字符数,不包括 0 结束符。
如果 lpBuffer 指针指向的字符串缓冲区大小不够,返回值返回实际需要的字符串缓冲区的空间长度,这个长度肯定会比传入的 nBufferLength 长。
如果函数执行失败,返回值是0,想要获得更多的错误信息,请调用 GetLastError 函数获取。

 

2、GetDriveType 函数

简介:
GetDriveType 函数是用来确定磁盘驱动器的类型,是可移动的、固定的、CD-ROM、RAM磁盘还是网络驱动器。

声明:
UINT GetDriveType(
  LPCTSTR lpRootPathName
);

参数:
lpRootPathName:
分区的根目录,字符串结尾要带上反斜线 \,如果该参数传递 NULL,函数使用当前目录的根目录为准。

返回值:
返回值为该磁盘分区的类型,可能有以下值:
DRIVE_UNKNOWN(0):未知的磁盘类型
DRIVE_NO_ROOT_DIR(1):说明 lpRootPathName 是无效的
DRIVE_REMOVABLE(2):可移动磁盘
DRIVE_FIXED(3):固定磁盘
DRIVE_REMOTE(4):网络磁盘
DRIVE_CDROM(5):光驱
DRIVE_RAMDISK(6):为RAM

 

3、GetLogicalDrives 函数

简介:
该函数返回当前系统中已存在的磁盘驱动器掩码值。

声明:
DWORD GetLogicalDrives(
);

参数:
没有参数。

返回值:
返回值为 DWORD 类型的整形变量,该变量的二进制位标志着存在哪些驱动器。其中,位0若为1表示驱动器 A: 存在于系统中;位1若为1表示存在 B: 驱动器;以次类推。

 

4、GetDiskFreeSpace 函数

简介:
该函数返回指定磁盘分区的信息,包括磁盘的剩余空间容量等等。

声明:
BOOL GetDiskFreeSpace(
  LPCSTR  lpRootPathName,
  LPDWORD lpSectorsPerCluster,
  LPDWORD lpBytesPerSector,
  LPDWORD lpNumberOfFreeClusters,
  LPDWORD lpTotalNumberOfClusters
);

参数:
lpRootPathName:标识盘符的根路径
lpSectorsPerCluster:返回每簇的扇区数
pBytesPerSector:返回每扇区的字节数
pNumberOfFreeClusters:返回空余簇的数量
pTotalNumberOfClusters:返回全部簇的数量

簇 - 文件系统用来管理文件数据的最小单位。
每一个簇都是由连续的几个扇区组成,例如
通常是由1/2/4/8/16...扇区组成。
FAT16/32 - 4K、8K
NTFS - 4K
剩余空间(TotalLetfSize) = 空余簇数量 * 每簇的扇区数 * 每扇区字节数。

返回值:
函数执行成功,返回TRUE;
函数执行失败,返回FALSE,可通过调用 GetLastError 来获得更多的错误信息。

5、GetDiskFreeSpaceEx 函数

简介:
获取一个磁盘分区的组织以及剩余空间容量有关的信息。

声明:
BOOL GetDiskFreeSpaceEx(
  LPCSTR          lpDirectoryName,
  PULARGE_INTEGER lpFreeBytesAvailableToCaller,
  PULARGE_INTEGER lpTotalNumberOfBytes,
  PULARGE_INTEGER lpTotalNumberOfFreeBytes
);

参数:
lpRootPathName:磁盘分区的根路径名;
lpFreeBytesAvailableToCaller:返回该分区的可用字节数
lpTotalNumberOfBytes:返回该分区的总字节数
lpTotalNumberOfFreeBytes:返回该分区的空闲字节数

返回值:
函数执行成功,返回TRUE;
函数执行失败,返回FALSE,可通过调用 GetLastError 来获得更多的错误信息。

 

posted @ 2020-08-02 18:44  SALTED____FISH  阅读(277)  评论(0)    收藏  举报