win32文件读写demo
新建一个控制台工程;代码;
// file.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include <windows.h>
#include <tchar.h>
#include <stdio.h>HANDLE hOutput;void perro(LPTSTR pszTitle){LPVOID pvErrMsg = NULL;DWORD nError = GetLastError();FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,NULL, nError,MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED),(LPTSTR)&pvErrMsg,0, NULL);TCHAR szText[256];HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);wsprintf(szText, "%s(errno=%d):%s\n", pszTitle, nError, (LPTSTR)pvErrMsg);WriteConsole(hOutput, szText, wcslen(szText), NULL, NULL);WriteConsole(hOutput, szText, 50, NULL, NULL);LocalFree(pvErrMsg);
}void Create()
{HANDLE hFile = CreateFile(_T("Y:/file.txt"), GENERIC_WRITE,FILE_SHARE_READ, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL);CloseHandle(hFile);
}
void Write()
{HANDLE hFile = CreateFile(_T("Y:/file.txt"), GENERIC_WRITE,FILE_SHARE_READ, NULL, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL);// 1 多字节字符集CHAR szText[] = "hello win32 file";DWORD nLen = 0;WriteFile(hFile, szText, strlen(szText), &nLen, NULL);printf("准备写入:%d,实际写入:%d\n",strlen(szText), nLen);// 2 Unicode字符集//TCHAR szText[] = _T("hello file");//DWORD nLen = 0;//WriteFile(hFile, szText, wcslen(szText)*sizeof(szText[0]), &nLen, NULL);//TCHAR pszText[256] = { 0 };//wsprintf(pszText, _T("准备写入:%d,实际写入:%d\n"), wcslen(szText), nLen);//WriteConsole(hOutput, pszText, wcslen(pszText), NULL, NULL);CloseHandle(hFile);
}
void Read()
{HANDLE hFile = CreateFile(_T("y:/file.txt"),GENERIC_READ, FILE_SHARE_READ, NULL,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL);DWORD nHight = 0;DWORD nLow = GetFileSize(hFile, &nHight);DWORD nLen = 0;// 1 多字节字符集//CHAR szText[256] = { 0 };//ReadFile(hFile, szText, nLow, &nLen, NULL);//printf("数据:%s,准备读取:%d,实际读取:%d\n",szText, nLow, nLen);// 2 Unicode 字符集TCHAR szText[256] = { 0 };ReadFile(hFile, szText, nLow, &nLen, NULL);TCHAR pszText[256] = { 0 };wsprintf(pszText, _T("数据:%s, 准备读取 : %d, 实际读取 : %d\n"), szText, nLow, nLen);//WriteConsole(hOutput, pszText, wcslen(pszText), NULL, NULL);WriteConsole(hOutput, pszText, 150, NULL, NULL);CloseHandle(hFile);
}
void UseFile()
{
// CopyFile( _T("y:/file.txt"), _T("Y:/123/nofile.txt"), FALSE );
// DeleteFile( _T("y:/file.txt"));MoveFile(_T("y:/123/nofile.txt"), _T("y:/file.txt"));perro(_T("MoveFile"));
}int _tmain(int argc, _TCHAR* argv[])
{hOutput = GetStdHandle(STD_OUTPUT_HANDLE);Create( );Write( );Read( );//UseFile();return 0;
}
运行如下;
WriteConsole(hOutput, szText, wcslen(szText), NULL, NULL) 这句,wcslen(szText)会报如下的错,
先改为直接使用数值, WriteConsole(hOutput, szText, 50, NULL, NULL);
如果要使用printf则包含 #include <stdio.h>;
hOutput = GetStdHandle(STD_OUTPUT_HANDLE),获取控制台窗口句柄;
WriteConsole(hOutput, szText, 50, NULL, NULL),往控制台窗口写;
win32文件读写demo相关推荐
- java 文件读写demo
分析错误日志: import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException;public ...
- c语言infile和outfile用法,C语言文件读写基本操作DEMO
DEMO 来源于<C语言实战105例>中的34例:文件读写基本操作 把infile中的内容写到outfile中去 #include #include int main() { FILE * ...
- Win32 基本文件读写操作
一.创建文件 HANDLE hFile = ::CreateFile(TEXT("E:\\CreateFileDemo.txt"), //创建文件的名称.GENERIC_WRITE ...
- java大文件读写操作
转载自:http://blog.csdn.net/akon_vm/article/details/7429245 RandomAccessFile RandomAccessFile是用来访问那些保存数 ...
- [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
本文转自:http://www.cnblogs.com/artwl/p/3396330.html 近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0, ...
- VC中海量文件读写类设计与应用(转)
VC中海量文件读写类设计与应用 沈瑞冰 摘要 本文阐述了海量文件读写的一般方法,并分析了该方法中存在的内存耗尽问题和解决办法,并就此设计了一个海量文件读写类,封装了海量文件读写操作,最后给出了一个 ...
- MFC中的文件读写技术
计算机室如何管理自身所存放着的大量的信息的呢?windows的磁盘管理程序为我们提供了一套严密而又高效的信息组织形式--硬盘上的信息是以文件的形式被管理的. 面向存储的文件技术 什么是文件?计算机中, ...
- ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助. 目录 ActionScript 3.0简介 Hello ...
- VC中海量文件读写类设计与应用
VC中海量文件读写类设计与应用 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile().WriteFile ...
最新文章
- protobuf的编译
- 在全局中调用类的静态成员函数
- nyoj359Delete it
- JavaScript 的性能优化:加载和执行
- 解析几何复习(一)向量代数
- ubuntu下修改用户的默认目录
- nginx 405 not allowed问题解决方法
- java读取bny_java转义字符
- 优思学院|2021中质协六西格玛绿带考题及答案
- HDOJ 1001 Sum Problem
- firefox不能正常下载文件
- RepMet: Representative-based metric learning for classification and few-shot object detection
- 机器学习之GD、SGD
- 华为笔记本换装linux双系统,matebook的win+ubuntu双系统安装方法
- 终极 Shell——ZSH
- NFT艺术品交易平台有哪些?
- 表连接on 和where的区别
- 一些vue功能和css样式
- 鉴权 前后端常见的几种鉴权方式
- 多个输入框失焦事件触发异常问题解决
热门文章
- [转载] FatFs模块功能配置选项
- java的知识点45——事务||测试时间处理(java.sql.date,time,timestamp)
- JavaScript 技术篇-chrome浏览器读取剪切板命令document.execCommand(‘paste‘)返回false原因及解决方法
- PyQt5 技术篇-如何彻底删除控件?布局移除控件方法。
- css知识点笔记-常用属性
- vue项目设置img标签的默认图片
- sepFilter2D函数
- VS在windows进行网络开发UDP(一)
- 第一次上课:特征值特征向量的几何直观
- Python:cv2.imread读入图片后返回NoneType的解决方案