您可以使用CreateFile功能创建新文件或打开现有文件。您必须指定文件名,首选访问权限,共享模式,创建说明和属性。
在以下示例中,CreateFile打开一个现有文件进行阅读。
HANDLE hFile;
hFile = CreateFile("MYFILE.TXT", //打开MYFILE.TXT
GENERIC_READ, //打开阅读
FILE_SHARE_READ, //分享阅读
NULL, //没有安全
OPEN_EXISTING, //仅存在文件
FILE_ATTRIBUTE_NORMAL, //普通文件
NULL); //没有attr。模板
if (hFile == INVALID_HANDLE_VALUE) {
ErrorHandler("Could not open file."); /* process error */
}
在此示例中,CreateFile仅在名称为MYFILE.TXT的文件已存在于当前目录中才能成功。在尝试使用句柄访问该文件之前,应用程序应检查CreateFile的返回值。如果发生错误,应用程序应使用GetLastError函数来获取扩展错误信息并进行相应的响应。
必须关闭文件才能删除。以下行将关闭并删除MYFILE.TXT文件。
CloseHandle(hFile);
DeleteFile("MYFILE.TXT");
在以下示例中,CreateFile创建一个新文件并将其打开以进行写入。
HANDLE hFile;
hFile = CreateFile("MYFILE.TXT", //创建MYFILE.TXT
GENERIC_WRITE, //打开写作
0, //不要分享
NULL, //没有安全
CREATE_ALWAYS, //覆盖现有的
FILE_ATTRIBUTE_NORMAL | //普通文件
FILE_FLAG_OVERLAPPED, //异步I / O
NULL); //没有attr。模板
if (hFile == INVALID_HANDLE_VALUE) {
ErrorHandler("Could not open file."); //进程错误
}
除了标准属性(只读,隐藏,系统等)之外,还可以通过将指向SECURITY_ATTRIBUTES结构的指针作为第四个参数来指定安全属性。但是,底层文件系统必须支持这些属性的安全性,以使它们具有任何效果。有关安全性的更多信息,请参阅安全.