Windows程序设计(2) - API-文件系统

一、磁盘分区的基本概念

1.磁盘分区(Patitions):
分区就是物理存储设备分割成多个不同的逻辑上的存储设备。分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置。

2.卷(Volumes)
卷,也称逻辑驱动器,是NTFS、FAT32等文件系统组织结构的最高层。

3.Windows系统中文件命名的标准
文件命名各位为“主文件名+扩展名”,中间以“.”隔开。文件可以没有扩展名,但不能没有主文件名。
用户给文件命名必须要遵守的规则
(1)长度规则。
windows系统不对单个文件的长度做限制,但文件路径的程度被限制在260个字符。因此文件名的长度为260减去文件所在目录的路径长度。
(2)特殊字符
特殊字符不能在文件名的任何位置出现。
\ | / * ? < > " :
特殊字符在系统或命令行下代表一下特殊的意义。

二、文件系统的主要API

1. 磁盘和驱动器管理类API

GetLogicalDrives 获取主机中所有逻辑驱动器,以 Bit Map 的形式返回
GetLogicalDrivesStrings 获取主机中所有逻辑驱动器,以驱动器根路径字符串返回
FindFirstVolume 查找主机中的第一个驱动器,返回查找句柄
FindNextVolume 根据FindFirstVolume返回的句柄,查找主机中后续的逻辑驱动器
FindVolumeClose 关闭驱动器查找句柄
GetDriveType 获取驱动器类型
GetVolumeInformation 获取逻辑驱动器信息
FindFirstVolumeMountPoint 查找指定卷的第一个挂载点,返回查找句柄
FindNextVolumeMountPoint 根据FindFirstVolumeMountPoint返回的句柄,查找卷的后续挂载点
FindVolumeMountPointClose 关闭挂载点查找句柄
GetVolumeNameForVolumeMountPoint 根据指定挂载点获取相应的卷设备名
SetVolumeMountPoint 将指定卷挂载到指定挂载点
GetDiskFreeSpace 获取磁盘空间信息,包括每簇的扇区数,每扇区的字节数,簇数量,空闲的簇数量
GetDiskFreeSpaceEx 获取用户可用的空闲空间的字节数,磁盘总容量的字节数

== Windows API提供给用户态使用。对一些磁盘的高级操作,比如磁盘分区,格式化驱动器,改变驱动器的文件系统,读取磁盘扇区等操作需要在系统内核中完成,用户态API不能完成这些高级操作 ==

2.文件和目录管理

DeleteFile 删除参数所指定文件
CopyFile 复制指定文件为一个新文件
MoveFile 将指定文件或目录移动到指定位置
CreateFile 新建或打开一个文件,获取文件句柄
ReadFile 读取由文件句柄指定的文件的内容
WriteFile 向由文件句柄指定的文件中写入内容
GetFileSize 获取文件大小,返回DWORD,大小超过DWORD最大值时可指定高32位DWORD联合存储
GetFileSizeEx 获取文件大小,存储到一个64位的大整数联合体中
CreateDirectory 创建一个目录
GetCurrentDirectory 获取当前程序所在目录
SetCurrentDirectory 设置当前程序所在目录
GetModuleFileName 获取当前模块全路径
FindFirstFile 查找指定目录下第一个文件或目录,获得查找句柄
FindNextFile 根据FindFirstFile获得的句柄,循环查找文件和目录
GetFileAttributes 获取指定文件或目录的属性,返回DWORD
GetFileAttributesEx 获取指定文件或目录属性,存储在WIN32_FILE_ATTRIBUTE_DATA结构体中
SetFileAttributes 将文件属性设置为指定值
FileTimeToLocalFileTime 将文件时间转换为本地时间
FileTimeToSystemTime 将文件时间转换为系统时间,SYSTEMTIME格式,便于显示

3.高级文件系统操作

CreateFileMapping 创建文件映射对象
MapViewOfFile 创建视图,将创建的文件映射对象映射到当前进程的地址空间中
FlushViewOfFile 将视图中数据写入磁盘,对视图的操作都会反映到磁盘上的文件中
OpenFileMapping 打开已经存在的命名的文件映射对象
UnmapViewOfFile 取消文件映射
GetMappedFileName 从映射对象获取被映射文件的文件设备名
QueryDosDevice 获取MS-DOS设备名

Windows程序设计(2) - API-文件系统

上一篇:从零开始:windows下安装vue4,,然后卸载并安装vue3


下一篇:chromium windows compile 浏览器编译 vs2017 win10