GHOST系统之家 - Windows系统光盘下载网站!
当前位置:GHOST系统之家>电脑问题 > 网络安全编程:文件相关操作API函数

网络安全编程:文件相关操作API函数

来源:Ghost系统之家浏览:时间:2022-10-28 17:29:39

刚开始接触编程可能会觉得windowsAPI是一个很神奇、很万能的工具,windowsAPI是Windows下开发应用程序的基础知识,不过基础并不代表简单,能掌握好Windows API来开发程序也是非常不容易的。

在Windows下,文件有很多种,比如图片文件、视频文件、音频文件……这些文件都属于保存在磁盘上的存储格式不相同的文件。除了常见的磁盘文件格式外,管道、邮槽,甚至是设备对象,在Windows下也都被当作文件来对待。这样在编程的过程中,操作管道、邮槽、设备对象就如同操作文件一样。

1. 文件的打开与关闭

要对文件进行操作,首先把要操作的文件打开,文件打开成功后会返回一个可以用于操作文件的句柄,通过这个句柄就可以对文件进行读写操作了。

打开文件的API函数定义如下:

参数说明如下:

lpFileName:欲打开或创建的文件名,这里也可以不是文件名,可以是设备对象之类的被视为文件的相关对象。

dwDesiredAccess:对文件的访问模式,它指定了要对打开的对象进行何种操作。通常是 GENERIC_READ 和GENERIC_WRITE,分别表示只读模式和只写模式;还可以通过按位或运算符同时指定两种模式,如 GENERIC_READ |GENERIC_WRITE。

dwShareMode:打开文件的共享模式,表示文件被打开后是否允许其他进程进行操作,如果可以进行操作,可以指定其操作的模式。

lpSecurityAttributes:该参数表示安全属性,通过这个参数可以指定返回的文件句柄是否可以被子进程继承,如果参数设置为NULL,表明无法被继承,否则需要将参数指向一个 SECURITY_ATTRIBUTES 的结构体。该参数通常为 NULL。

dwCreationDisposition:在创建或打开的文件存在或不存在时该函数的处理方式。

dwFlagsAndAttributes:该参数用来指定新建文件的属性和对文件操作的方式。

hTemplateFile:文件模板句柄,系统会复制该文件模板的所有属性到当前创建的文件中。

该函数若执行成功,则返回一个文件句柄;如果执行失败,则返回INVALID_HANDLE_VALUE。具体失败的原因可以通过调用GetLastError()函数来得到。

文件的打开操作调用的是CreateFile()函数,该函数名不像其名字那样只能用于创建文件。CreateFile()函数既可以打开文件,也可以创建文件。在Windows下有一个OpenFile()函数用来打开文件,不过它是Win16的产物,在Win32下必须使用CreateFile()来打开文件。

CreateFile()的参数很多,不过用习惯后会发现常用的参数都很容易记住,甚至有些参数常用的就是那么一两个。在对文件操作完成后,需要对打开文件的句柄进行关闭以释放资源。关闭对象句柄的函数非常简单,而且使用也非常广泛。该函数的定义如下:

该函数的参数只有一个,这个参数就是调用CreateFile()函数时的返回值,也就是文件句柄。该函数并不仅仅能够关闭文件句柄,事件句柄、进程句柄、线程句柄等一系列对象句柄都可以用该函数进行关闭。

2. 文件的操作

文件的操作有4种,分别是“增、删、改、查”。接触过数据库的读者一定感觉这些操作都是针对数据库的,怎么对文件的操作也是这4种呢?其实,不单单是对文件的操作存在增、删、改、查,对注册表、系统服务、进程等的操作也都存在增、删、改、查。只不过相对应的有不同的WindowsAPI函数,而不是使用数据库的SQL语句而已。

用文件的操作进行举例说明。文件的“增”操作可以理解为创建文件,文件的“删”操作可以理解为删除文件,文件的“改”操作可以理解为对文件的写操作,文件的“查”操作可以理解为对文件的“读”操作。

对于文件的读写操作可以从狭义和广义上进行认识,狭义的“读文件”就是读取已打开文件的内容或数据,而广义的“读文件”则可以是获取文件的大小、创建时间和修改时间等,因为文件的大小、创建时间、修改时间也属于文件的属性,只是这些属性不保存在本身的文件中。写操作也是同样的道理。

下面介绍常用的文件的删除操作、读写操作所涉及的API函数,具体的更多涉及文件操作的函数无法一一介绍,靠大家自行积累总结。

删除文件的API函数定义如下:

该函数的参数只有一个,lpFileName表示要删除的文件的文件名。大部分的文件操作函数都是通过CreateFile()函数返回的文件句柄进行操作,而DeleteFile()函数使用的文件名进行操作的,如果文件被打开以后,又怎么能删除呢?

读取文件内容的函数如下:

参数说明如下。

hFile:文件句柄,通常是 CreateFile()函数返回的句柄。

lpBuffer:指向一个缓冲区,函数会将从文件中读出的数据保存在该缓冲区中。

nNumberOfBytesToRead:要求读入的字节数,通常情况下是缓冲区的大小。

lpNumberOfBytesRead:指向一个 DWORD 类型的变量,用于返回实际读入的字节数。

lpOverlapped:一般设置为 NULL。

写入文件内容的函数如下:

WriteFile()函数的参数和ReadFile()函数的参数意义基本相同,所不同的是第2个参数。第2个参数仍然指向一个缓冲区,WriteFile()函数会将该缓冲区的内容进行写入。当用WriteFile()函数写文件时,写入的数据通常被Windows暂时保存在内部的高速缓存中,操作系统会定期进行盘写入,从而避免频繁进行I/O操作影响执行效率。为了保证数据即时写入可以使用FlushFileBuffers()函数,该函数的定义如下:

该函数会将指定文件句柄的缓冲区进行清空,使得Windows将缓冲区中的文件写入磁盘。该函数只有一个参数,即文件句柄。该文件句柄与ReadFile()和WriteFile()所使用的文件句柄相同。

在进行文件读写时,往往并不是由前往后顺序读写,通常是根据需要读写文件的某个部分,这就需要对文件指针进行移动,从而正确对文件进行读写操作。移动文件指针的函数定义如下:

该函数的参数说明如下。

hFile:进行文件操作时的文件句柄,如同 ReadFile()和 WriteFile()。

lDistanceToMove:指定要移动文件指针的距离。

lpDistanceToMoveHigh:一个指向 LONG 型的指针,移动距离的高 32 位,一般为 NULL。

dwMoveMethod:指定移动的起始位置。可以从文件开始位置进行移动(FILE_BEGIN),可以从当前文件位置开始移动(FILE_CURRENT),也可以从文件的末尾开始移动(FILE_END)。

3. 驱动器及目录相关操作

下面介绍目录相关的操作,主要介绍4个相关函数,分别是获取本地所有逻辑驱动器、获取驱动器类型、创建目录和移除目录。下面介绍这4个函数的定义。

获取本地所有逻辑驱动器函数的定义如下:

该函数的参数说明如下。

nBufferLength:表示 lpBuffer 的长度。

lpBuffer:表示接收本地逻辑驱动器名的缓冲区。

该函数以字符串的形式返回本地所有可用的驱动器名保存在lpBuffer中。返回字符串的形式如“C:\”,0,“D:\”,0,“E:\”,0,0。

获取驱动器类型函数的定义如下:

该函数只有一个参数lpRootPathName,要获取逻辑驱动器类型的驱动器名,如“C:\”。函数返回值取以下值之一。

创建目录的函数定义如下:

该函数的参数说明如下。

lpPathName:创建目录的目录名称。

lpSecurityAttributes:安全属性,一般设置为 NULL。

移除目录的函数定义如下:

该函数的参数指定要移除的目录的目录名。

以上是关于驱动器和目录的几个常用的API函数。

推荐系统

  • windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载

    windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载

    语言:中文版系统大小:5.31GB系统类型:Win11

    windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化

  • 微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载

    微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载

    语言:中文版系统大小:5.31GB系统类型:Win11

    微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载

  • 微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件

    微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件

    语言:中文版系统大小:0MB系统类型:Win11

    微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为

  • 雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载

    雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载

    语言:中文版系统大小:4.75GB系统类型:

    雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统

  • 雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO

    雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO

    语言:中文版系统大小:5.91GB系统类型:Win7

    雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户

  • 番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载

    番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载

    语言:中文版系统大小:3.91GB系统类型:Win7

    欢迎使用 番茄花园 Ghost Win7 x64 SP1 2022.07 极速装机版 专业装机版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计。是电脑城、个人、公司快速装机之首选!拥有此系统

  • 番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    番茄花园 Windows 10 32位极速企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活

  • 新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载

    新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    新萝卜家园电脑城专用系统 Windows10 x86企业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程