Windows 文件的创建打开和关闭
Posted 胡刚2021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 文件的创建打开和关闭相关的知识,希望对你有一定的参考价值。
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;
以上是关于Windows 文件的创建打开和关闭的主要内容,如果未能解决你的问题,请参考以下文章