驱动器与文件夹
这两个东西在我们的日常操作电脑的过程中,经常用到,就是用来存储硬盘上的文件的。
卷标操作
由于不是很常用这些函数,我就贴一下函数定义就好了。SetVolumeLabel
设置卷标名称。
1 | BOOL SetVolumeLabel( |
第一个参数如果为NULL的话呢是操作当前的一个卷标,第二个参数就是卷标的名称,如果设置为NULL则是删除卷标。GetVolumeInformation
获取卷标信息
1 | BOOL GetVolumeInformation( |
逻辑驱动器的序列号是在格式化驱动器的时候,操作系统随机分配的一个GUID(全局标识符)。
检测逻辑驱动器
DWORD GetLogicalDrives(VOID)
逻辑驱动器可用情况
这个函数没有参数,返回值是一个位掩码:
如果函数成功,则返回一个位掩码,表示当前可用的磁盘驱动器。位位置0(最小有效位)是驱动器A,位位置1是驱动器B,位位置2是驱动器C,依此类推。GetLogicalDriveStrings
获取存在的卷标:
1 | DWORD GetLogicalDriveStrings( |
这个就是位了我们的方便进行设计的,缓冲区的内容格式就是:c:\<null>d:\<null><null>
GetDriveType
获取驱动器的类型
就是判断驱动器是个什么盘符,比如说网络的,U盘,硬盘之类的。
1 | UINT GetDriveType( |
返回值有如下几个:
- DRIVE_UNKNOWN The drive type cannot be determined.
- DRIVE_NO_ROOT_DIR The root directory does not exist.
- DRIVE_REMOVABLE The disk can be removed from the drive.
- DRIVE_FIXED The disk cannot be removed from the drive.
- DRIVE_REMOTE The drive is a remote (network) drive.
- DRIVE_CDROM The drive is a CD-ROM drive.
- DRIVE_RAMDISK The drive is a RAM disk.
GetDiskFreeSpace
获取磁盘空间剩余的内容
有时候我们确实有这种需求,需要我们的磁盘剩余空间
1 | BOOL GetDiskFreeSpace( |
总容量的公式:簇总数 X 每簇扇区数 X 每扇区的字节数
剩余容量的计算公式: 未使用的簇 X 每簇扇区数 X 每扇区的字节数
格式化驱动器
SHFormatDriver
这个是个外壳函数,就是意思是打开一个对话框,让用户进行选择行操作,这个函数使用的情况很少,所以不介绍了。但值得一说的是需要:#include <shlobj.h>
和导入shell32.dll。
目录操作
CreateDirectory
创建一个文件夹
1 | BOOL CreateDirectory( |
不能进行递归创建,我们自己写一个就好了
1 | BOOL CStudy_HistoryDlg::CreateDir(LPCTSTR lpszDir) |
RemoveDirectory
删除目录
这个只能删除空目录,无法递归删除,递归删除的话呢使用我们之前写好的那个文件删除的函数就可以了。