函数 CreateFile 可以创建一个新文件或者打开一个已有文件。如果调用成功,函数返回打开文件的句柄;否则,返回特殊常数 INVALID_HANDLE_VALUEO 原型如下:

CreateFile PROTO,                                ;创建新文件

lpFilename:PTR BYTE,                       ;文件名指针

dwDesiredAccess:DWORD,              ;访问模式

dwShareMode:DWORD,                  ;共享模式

lpSecurityAttributes:DWORD,          ;安全属性指针

dwCreationDisposition:DWORD,     ;文件创建选项

dwFlagsAndAttributes:DWORD,      ;文件属性

hTemplateFile:DWORD                    ;文件模板句柄

下表对参数进行了说明。如果函数调用失败则返回值为零。

参数说明

lpFileName

指向一个空字节结束字符串,该串为部分或全部合格的文件名(drive:pathfilename)

dwDesiredAccess

指定文件访问方式(读或写)

dwShareMode

控制多个程序对打开文件的访问能力

lpSecurityAttributes

指向安全结构,该结构控制安全权限

dwCreationDisposition

指定文件存在或不存在时的操作

dwFlagsAndAttributes

包含位标志指定文件属性,如存档、加密、隐藏、普通、系统和临时

hTemplateFile

包含一个可选的文件模板句柄,该文件为已创建的文件提供文件属性和扩展属性;如果不使用该参数,就将其设置为 0

dwDesiredAccess

参数 dwDesiredAccess 允许指定对文件进行读访问、写访问、读/写访问,或者设备查询访问。可以从下表列出的值中选择,也可以从表中未列出的更多特定标志值选择。

值含义

0

为对象指定设备查询访问。应用程序可以查询设备属性而无需访问设备,也可以检查文件是否存在

GENERIC_READ

为对象指定读访问。可以从文件中读取数据,文件指针可以移动。与 GENERIC_WRITE 一起使用为读/写访问

GENERIC_WRITE

对对象指定写访问。可以向文件中写入数据,文件指针可以移动。与 GENERIC_READ 一起使用为读/写访问

dwCreationDisposition

参数 dwCreationDisposition 指定当文件存在或不存在时应采取怎样的操作。可从下表中选择一个值。

值含义

CREATE_NEW

创建一个新文件。要求将参数 dwDesiredAccess 设置为 GENERIC_WRITE。如果文件已经存在,则函数调用失败

CREATE_ALWAYS

创建一个新文件。如果文件已存在,则函数会覆盖原文件,清除现有属性,并合并文件 属性与预定义的常数 FILE_ATTRIBUTES_ARCHIVE 中属性参数指定的标志。要求将参数 dwDesiredAccess 设置为 GENERIC WRITE

OPEN_EXISTING

打开文件。如果文件不存在,则函数调用失败。可用于读取和/或写入文件

OPEN_ALWAYS

如果文件存在,则打开文件。如果不存在,则函数创建文件,就好像CreateDisposition 的值为 CREATE NEW

TRUNCATE_EXISTING

打开文件。一旦打开,文件将被截断,使其大小为零。要求将参数 dwDesiredAccess 设置为 GENERIC_WRITE。如果文件不存在,则函数调用失败

下表列出了参数 dwFlagsAndAttributes 比较常用的值。(完整列表请在 Microsoft 在线文档中搜索CreateFiko)允许任意属性组合,除了 FILE_ATTRIBUTE_NORMAL 会被其他 所有属性覆盖。这些值能映射为 2 的幂,因此可以用汇编时 OR 运算符或 + 运算符将它们组 合为一个参数:

FILE_ATTRIBUTE_HIDDEN OR FILE_ATTRIBUTE_READONLY

FILE_ATTRIBUTE_HIDDEN + FILE_ATTRIBUTE_READONLY

属性含义

FILE_ATTRIBUTE_ARCHIVE

文件存档。应用程序使用这个属性标记文件以便备份或移动

FILE_ATTRIBUTE_HIDDEN

文件隐藏。不包含在普通目录列表中

FILE_ATTRIBUTE_NORMAL

文件没有其他属性设置。该属性只在单独使用时有效

FILE_ATTRIBUTE_READONLY

文件只读。应用程序可以读文件但不能写或删除文件

FILE_ATTRIBUTE_TEMPORARY

文件被用于临时存储

【示例】下面的例子仅具说明性,展示了如何创建和打开文件。请参阅在线从 Microsoft文 档,了解 CreateFile 更多可用选项:

打开并读取(输入)已存在文件:

INVOKE CreateFile, ADDR filename, ;文件名指针 GENERIC_READ, ;读文件 DO_NOT_SHARE, ;共享模式 NULL, ;安全属性指针 OPEN_EXISTING, ;打开已存在文件 FILE_ATTRIBUTE_NORMALA ;普通文件属性 0 ;未使用

打开并写入(输出)已存在文件。文件打开后,可以通过写入覆盖当前数据,或者将文件指针移到末尾,向文件添加新数据(参见11.1.6节的SetFilePointer):

INVOKE CreateFile, ADDR filename, GENERIC_WRITEZ, ;写文件 DO_NOT_SHARE, NULL, OPEN_EXISTIN, ;文件必须存在 FILE_ATTRIBUTE_NORMAL, 0

创建有普通属性的新文件,并删除所有已存在的同名文件:

INVOKE CreateFile, ADDR filename, GENERIC_WRITE, ;写文件 DO _NOT_SHARE, NULL, CREATE_ALWAYS, ;覆盖已存在的文件 FILE_ATTRIBUTE_NORMAL, 0

若文件不存在,则创建文件;否则打开并输出现有文件:

INVOKE CreateFile, ADDR filename, GENERIC_WRITE, ;写文件 DO_NOT_SHARE, NULL, CREATE_NEW, ;不删除已存在文件 FILE_ATTRIBUTE_NORMAL, 0

createfile调用失败_汇编语言CreateFile函数:创建新文件或者打开已有文件相关推荐

  1. 创建文件 c语言,汇编语言CreateFile函数:创建新文件或者打开已有文件

    函数 CreateFile 可以创建一个新文件或者打开一个已有文件.如果调用成功,函数返回打开文件的句柄:否则,返回特殊常数 INVALID_HANDLE_VALUEO 原型如下: CreateFil ...

  2. python创造订单失败_使用Python API创建新订单,get AttributeError:“str”对象没有属性“iteritems”...

    我掌握的代码是new_order = shopify.Order.create(json.dumps({'order': { "email": "foo@example. ...

  3. 无法创建新虚拟机: 无法打开配置文件“E:\Linux\“: 拒绝访问

    无法创建新虚拟机: 无法打开配置文件"E:\linux\111\Red Hat Enterprise Linux 7 64 位.vmx": 拒绝访问. 当我们遇到这种情况时 1.首 ...

  4. createfile调用失败_CreateFile 函数说明

    CreateFile 函数说明 简介: 创建或打开文件或 I/O 设备.常用的 I/O 设备有:文件,文件流,目录,物理磁盘,卷,控制台缓冲区,磁带驱动器,通信资源,邮筒和管道. 该函数返回一个句柄, ...

  5. createfile调用失败_CreateFile函数祥解

    CreateFile函数祥解 CreateFile The CreateFile function creates or opens the following objects and returns ...

  6. createfile调用失败_CreateFile函数详解(确实很详细)

    CreateFile The CreateFile function creates or opens the following objects and returns a handle that ...

  7. createfile调用失败_Java NIO Files.createFile()以NoSuchFileException失败

    我试图在dev-test-prod设置中放置一些核心文件.基本上,如果文件较新,则需要将其复制到下一级,作为质量检查过程的一部分. 我使用Java 8,所以我决定第一次尝试NIO Files / Pa ...

  8. 护士资格证延续注册WEB服务调用失败_服务熔断

    熔断机制是应对服务雪崩效应的一种微服务链路保护机制,当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回"错误"的响应信息.当检测 ...

  9. nw.js 调用驱动程序_使用NW.js创建照片发现应用程序(第2部分)

    nw.js 调用驱动程序 NW.js (formerly known as Node Webkit) is a framework for creating cross-platform deskto ...

最新文章

  1. 不要动态修改 DOM 里面的 id 属性
  2. Lesson 016 —— python 元组
  3. (个人备忘)多人开发 no file directory.....的问题
  4. 【分享】如何管理焦虑情绪
  5. json接口文档模板_在.Net Core WebAPI下给Swagger增加导出离线文档功能
  6. 简单的Jquery焦点图切换效果
  7. 《那些年啊,那些事——一个程序员的奋斗史》四
  8. 多页TIF转PDF 【JAVA】
  9. iOS App 性能优化总结
  10. Mybatis CRUD操作和多表查询
  11. 程序员如何做好自己的职业规划
  12. QT(5.12)+Qgis(3.10) 点图层及线图层渲染
  13. mui12搭载鸿蒙,MUI系统最新资讯
  14. mysql8设置局域网访问
  15. mybatis mysql 调用存储过程 多个返回值_被Mybatis坑惨了
  16. HTML卡片式布局源码,html5自适应卡片式设计动态加载整站源码_
  17. 徽章系列3: Travis CI 的使用
  18. 苹果id界面无法打开解决方法「iphone技巧」
  19. Windows Linux对应软件
  20. php 股票数据 sina,腾讯股票接口、和讯网股票接口、新浪股票接口、雪球股票数据、网易股票数据...

热门文章

  1. 剑指OFFER----51、数组中的逆数对(js实现)
  2. yaml.parser.ParserError
  3. 开发和常用工具推荐清单 转载
  4. 2020-题目(HTML5)
  5. 烦人的“小妖精”:浅谈小红点的设计
  6. registerForActivityResult请求权限/拍照/选取视频图片/裁剪图片
  7. 如何实时监测服务器某个端口通不通
  8. diff和patch
  9. python小白——进阶之路——day7天---字典和集合的相关函数
  10. LaTeX 004:隐藏 hyperref 超链接的红框