2024年3月30日发(作者:)
文件操作
应用程序中很多时候需要创建、打开不同格式的文件,存储或者读取不同格
式的数据信息。
分别介绍两种方式的文件操作所需的函数:
——————————————————————————————————
一 使用Windows CE提供的API函数
1> 创建/打开文件
HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
参数含义:
lpFileName:创建/打开文件的文件名,需要包括其完整路径。
dwDesiredAccess:指定文件的访问权限,如可读,可写。(详见表1)
GENERIC_READ 可读
GENERIC_WRITE 可写
GENERIC_WRITE | GENERIC_READ 可读可写
0 不可读不可写,只能获取文件属性
表1
dwShareMode:在本进程创建或者打开一个文件后(未关闭之前),其他进程
是否还可以具有访问该文件的权限,由此参数设定。(详见表2)
FILE_SHARE_WRITE 其他进程打开文件时的访问权限为只
写时,成功
FILE_SHARE_READ 其他进程打开文件时的访问权限为只
读时,成功
0 在该文件的句柄被关闭之前,不能够被
共享,也不能够被打开
表2
lpSecurityAttributes:指定文件访问的安全属性,Windows CE下不支持该参
数,因此设置为NULL。
dwCreationDisposition:指定创建/打开文件的方式。(详见表3)
1
GREATE_NEW 创建一个新文件,如果文件已经存在,
则函数执行失败
GREATE_ALWAYS 创建一个文件,如果文件已经存在,则
覆盖此文件,并清空已经存在的属性
OPEN_EXISTING 打开一个已经存在的文件,如果文件不
存在,则函数执行失败
OPEN_ALWAYS 打开一个已经存在的文件,如果文件不
存在,则创建一个新文件
TRUNCATE_EXISTING 打开一个已经存在的文件,并将其截断
到0字节,如果文件不存在,则函数执
行失败
表3
注:该参数设置为TRUNCATE_EXISTING,有一个必要的条件:dwDesiredAccess
参数必须设置为GENERIC_WRITE。
dwFlagsAndAttributes:指定文件属性。(详见表4)
FILE_ATTRIBUTE_ARCHIVE
FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_NORMAL
FILE_ATTRIBUTE_READONLY
FILE_ATTRIBUTE_SYSTEM
存档
隐藏
默认属性
只读
系统属性,表明该文件对系统操作很重要
表4
hTemplateFile:Windows CE中不支持,设为0。
返回值:成功,返回文件句柄,失败则返回INVALID_HANDLE_VALUE。
如果调用失败,通过GetLastError函数查看失败原因。
2> 关闭文件
BOOL CloseHandle(
HANDLE hObject
);
参数含义:
hObject:文件的句柄,CreateFile函数的返回值。
返回值:成功,返回非零值;失败,返回零值。
3> 读取文件
BOOL ReadFile(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
2


发布评论