C++ Builder 中 CreateFile的用法

来源:互联网 发布:湖南特大网络传销案 编辑:程序博客网 时间:2024/05/22 02:20

CreateFile

(1)函数原型
HANDLE CreateFile(
LPCTSTR lpfileName,
DWORD deDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
DWORD dwCreationDesposition,
DWORD dwFlagsAndAtrributes,
HANDLE hTemplateFile
);
(2)函数说明
该函数创建、打开或截断一个文件,并返回一个能够被用来存取该文件的句柄。此句柄允许读书据、写数据以及移动文件的指针。CreateFile函数既可以做为一个宽自负函数使用,也可以作为一个ANSI函数来用。
(3)参数说明
lpFileName:指向文件字符串的指针。
dwDesireAccess:制定文件的存取模式,可以取下列值:
  0:制定可以查询对象。
  GENERIC_READ:指定可以从文件中度去数据。
  GENERIC_WRITE:指定可以向文件中写数据。
dwShareMode:指定文件的共享模式,可以取下列值:
  0:不共享。
  FILE_SHARE_DELETE:在Windows NT系统中,只有为了删除文件而进行的打开操作才会成功。
  FILE_SHARE_READ:只有为了从文件中度去数据而进行的打开操作才会成功。
  FILE_SHARE_WRITE:只有为了向文件中写数据而进行的打开操作才会成功。
lpSecurityAttributes:指定文件的安全属性。
dwCreationDisopsition:指定创建文件的方式,可以取以下值:
  CREATE_NEW:创建新文件,如果文件已存在,则函数失败。
  CREATE_ALWAYS:创建爱内心文件,如果文件已存在,则函数将覆盖并清除旧文件。
  OPEN_EXISTING:打开文件,如果文件不存在,函数将失败。
  OPEN_ALWAYS:打开文件,如果文件不存在,则函数将创建一个新文件。
  TRUNCATE_EXISTING:打开外呢间,如果文件存在,函数将文件的大小设为零,如果文件不存在,函数将失败返回。
dwFlagsAndAtrributes:指定新建文件的属性和标志,它可以取以下值:
  FILE_ATTRIBUTE_ARCHIVE:归档属性。
  FILE_ATTRIBUTE_HIDDEN:隐藏属性。
  FILE_ATTRIBUTE_NORMAL:正常属性。
  FILE_ATTRIBUTE_READONLY:只读属性。
  FILE_ATTRIBUTE_SYSTEM:系统文件。
  FILE_ATTRIBUTE_TEMPORARY:临时存储文件,系统总是将临时文件的所有数据读入内存中,以加速对该文件的访问速度。用户应该尽快删除不再使用的临时文件。
  FILE_FLAG_OVERLAPPED:用户可以通过一个OVERLAPPED结构变量来保存和设置文件读写指针,从而可以完成重叠式的读和写。一般用于数量比较大的读些操作。
hTemplateFile:指向一个具有GENERIC_READ属性的文件的句柄,该文件为要创建的文件提供文件属性和文件扩展属性。
(4)注意事项
函数成功将返回指定文件的句柄,否则返回NULL。
(5)典型示例:

...
char szFile[64];
HANDLE handle;
unsigned long lWritten,lRead;

handle = CreateFile("c://windows//desktop//example.txt",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);

if(handle==INVALID_HANDLE_VALUE){
  MessageBox(NULL,"Error Create File!","Error",MB_OK);
  break;
}else
  MessageBox(NULL,"Open file Success!","Open file",MB_OK);