1.创建一个新的空白文件
代码:
主要配置 CreateFile 的参数为 CREATE_ALWAYS
#include<windows.h>
#include<tchar.h>
int WINAPI _tWinMain(HINSTANCE hinstance, HINSTANCE hPreInstance, LPTSTR lpCmdLine, int nShowCmd) {
HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, _T("创建文件成功"), _T("tip"), MB_OK);
}
return 0;
}
2.打开一个已经存在的文件
代码:
主要配置 CreateFile 的参数为 OPEN_EXISTING
#include<windows.h>
#include<tchar.h>
int WINAPI _tWinMain(HINSTANCE hinstance, HINSTANCE hPreInstance, LPTSTR lpCmdLine, int nShowCmd) {
/*HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, _T("创建文件成功"), _T("tip"), MB_OK);
}*/
HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, _T("打开文件成功"), _T("tip"), MB_OK);
}
else
{
MessageBox(NULL, _T("打开文件失败"), _T("tip"), MB_OK);
}
return 0;
}
3.打开一个文件,如果文件存在,则打开;如果文件不存在,则创建该文件,然后打开
代码:
主要配置 CreateFile 的参数为 OPEN_ALWAYS
#include<windows.h>
#include<tchar.h>
int WINAPI _tWinMain(HINSTANCE hinstance, HINSTANCE hPreInstance, LPTSTR lpCmdLine, int nShowCmd) {
/*HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, _T("创建文件成功"), _T("tip"), MB_OK);
}*/
/*HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, _T("打开文件成功"), _T("tip"), MB_OK);
}
else
{
MessageBox(NULL, _T("打开文件失败"), _T("tip"), MB_OK);
}*/
HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, _T("打开文件成功"), _T("tip"), MB_OK);
}
else
{
MessageBox(NULL, _T("打开文件失败"), _T("tip"), MB_OK);
}
return 0;
}
4.打开一个文件,如果该文件存在,则清空内容;如果该文件不存在,则创建该文件
代码:
主要配置 CreateFile 的参数为 CREATE_ALWAYS
#include<windows.h>
#include<tchar.h>
int WINAPI _tWinMain(HINSTANCE hinstance, HINSTANCE hPreInstance, LPTSTR lpCmdLine, int nShowCmd) {
/*HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, _T("创建文件成功"), _T("tip"), MB_OK);
}*/
/*HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, _T("打开文件成功"), _T("tip"), MB_OK);
}
else
{
MessageBox(NULL, _T("打开文件失败"), _T("tip"), MB_OK);
}*/
/*HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, _T("打开文件成功"), _T("tip"), MB_OK);
}
else
{
MessageBox(NULL, _T("打开文件失败"), _T("tip"), MB_OK);
}*/
HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, _T("打开文件成功"), _T("tip"), MB_OK);
}
else
{
MessageBox(NULL, _T("打开文件失败"), _T("tip"), MB_OK);
}
return 0;
}
5.关闭文件
CloseHandle(hFile);
代码:
只有打开成功的时候才关闭句柄,打开失败的时候句柄 hFile 不需要关闭
#include<windows.h>
#include<tchar.h>
int WINAPI _tWinMain(HINSTANCE hinstance, HINSTANCE hPreInstance, LPTSTR lpCmdLine, int nShowCmd) {
HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
// 只有打开成功的时候才关闭句柄,打开失败的时候hFile不需要关闭
CloseHandle(hFile);
MessageBox(NULL, _T("打开文件成功"), _T("tip"), MB_OK);
}
else
{
MessageBox(NULL, _T("打开文件失败"), _T("tip"), MB_OK);
}
return 0;
}