首页 > 代码库 > CreateFile,WriteFile,ReadFile
CreateFile,WriteFile,ReadFile
注意:CreateFile 跟 fopen 不同,打开文件时不区分 文本方式 或 二进制 方式ReadFile 或 WriteFile 都是对二进制数据进行操作HANDLE WINAPI CreateFile( __in LPCTSTR lpFileName, // 文件路径 __in DWORD dwDesiredAccess, // 访问权限,GENERIC_READ | GENERIC_WRITE __in DWORD dwShareMode, // 共享模式,NULL | FILE_SHARE_READ | FILE_SHARE_WRITE __in LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 安全属性 __in DWORD dwCreationDisposition, // 创建配置,CREATE_ALWAYS | CREATE_NEW | OPEN_ALWAYS | OPEN_EXISTING __in DWORD dwFlagsAndAttributes, // 扩展属性,NULL | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY __in HANDLE hTemplateFile // 指定一个文件句柄,新文件将从这个文件中复制扩展属性。NULL);BOOL WINAPI ReadFile( __in HANDLE hFile, // 文件句柄 __out LPVOID lpBuffer, // 接收数据用的 buffer __in DWORD nNumberOfBytesToRead, // 要读取的字节数 __out LPDWORD lpNumberOfBytesRead, // 实际读取到的字节数 __in LPOVERLAPPED lpOverlapped // OVERLAPPED 结构,一般设定为 NULL );BOOL WINAPI WriteFile( __in HANDLE hFile, // 文件句柄 __in LPCVOID lpBuffer, // 要写入的数据 __in DWORD nNumberOfBytesToWrite, // 要写入的字节数 __out LPDWORD lpNumberOfBytesWritten, // 实际写入的字节数 __in LPOVERLAPPED lpOverlapped // OVERLAPPED 结构,一般设定为 NULL);DWORD WINAPI GetFileSize( __in HANDLE hFile, // 文件句柄 __out LPDWORD lpFileSizeHigh // high-order 的返回值,一般设定为 NULL);读文件:void read(const wchar_t* strPath){ HANDLE hFile = ::CreateFile(strPath, GENERIC_READ, 0, NULL, OPEN_EXISTING, NULL, NULL); if (hFile != INVALID_HANDLE_VALUE) { DWORD nFileSize = ::GetFileSize(hFile, NULL); char* lpBuffer = new char[nFileSize]; DWORD nNumberOfBytesRead; BOOL bRet = ::ReadFile(hFile, lpBuffer, nFileSize, &nNumberOfBytesRead, NULL); // TODO ... delete[] lpBuffer; CloseHandle(hFile); }}写文件:void write(const wchar_t* strPath, const wchar_t* strContent, const int nContentSize){ HANDLE hFile = ::CreateFile(strPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, NULL, NULL); if (hFile != INVALID_HANDLE_VALUE) { DWORD nNumberOfBytesWritten; ::WriteFile(hFile, strContent, nContentSize, &nNumberOfBytesWritten, NULL); // TODO ... CloseHandle(hFile); }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。