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 文件的创建打开和关闭的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 批处理文件中打开文本文件和程序快捷方式

Windows API 文件处理

windows默认共享的打开和关闭?

通过 Windows.h 函数关闭打开的文件

使用Python不断打开exe文件和关闭exe文件

使用Python不断打开exe文件和关闭exe文件