WinApi学习笔记-读写文件

读文件

#include <windows.h>
#include <stdio.h>
#include <iostream>

DWORD MyReadFile(LPSTR filePath)
{
	HANDLE hFileRead;
	LARGE_INTEGER liFileSize;
	DWORD dwReadSize;
	LONGLONG liTotalRead = 0;
	BYTE lpFileDataBuffer[32];

	hFileRead = CreateFile(
		filePath,
		GENERIC_READ,
		FILE_SHARE_READ,
		NULL,
		OPEN_ALWAYS,//有就打开,没有就创建
		FILE_ATTRIBUTE_NORMAL,
		NULL
		);
	if(hFileRead == INVALID_HANDLE_VALUE)
	{
		printf("open error");
	}
	if(!GetFileSizeEx(hFileRead,&liFileSize))
	{
		printf("get size error");
	}
	else
	{
		printf("size is %d\n",liFileSize.QuadPart);//???
	}
	while(true)
	{
		DWORD i;
		if(!ReadFile(hFileRead,lpFileDataBuffer,32,&dwReadSize,NULL))
		{
			printf("error while reading");
		}
		printf("read %d byte\n",&dwReadSize);
		for(i = 0;i<dwReadSize;i++)
		{
			printf("  0x%x   ",lpFileDataBuffer[i]);
			std::cout<<lpFileDataBuffer[i]<<std::endl;
		}
		printf("\n");
		liTotalRead += dwReadSize;
		if(liTotalRead == liFileSize.QuadPart)
		{
			printf("end");
			break;
		}
	}
	CloseHandle(hFileRead);
	return 0;
}
int main()
{
	MyReadFile("c:\\a.txt");
	char a;
	std::cin >> a;
	return 0;
}

写文件

#include <windows.h>
#include <stdio.h>
#include <iostream>

DWORD MyWriteFile(LPSTR filePath,LPVOID lpData,DWORD dwSize)
{
	HANDLE hWrite;
	DWORD dwWriteSize;
	hWrite = CreateFile(filePath,GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
	if(hWrite == INVALID_HANDLE_VALUE)
	{
		printf("open error");
	}
	SetFilePointer(hWrite,0,0,FILE_END);//??
	if(!WriteFile(hWrite,lpData,dwSize,&dwWriteSize,NULL))
	{
		printf("error while writeing");
	}
	CloseHandle(hWrite);
	return 0;
}
int main()
{
	MyWriteFile("c:\\a.txt","myxland",lstrlen("myxland"));
	char a;
	std::cin >> a;
	return 0;
}
时间: 2024-11-09 03:53:06

WinApi学习笔记-读写文件的相关文章

Perl学习笔记之文件操作

         这篇文章主要介绍了Perl学习笔记之文件操作,本文分别给出了打开文件.读取文件.写入文件代码实例,需要的朋友可以参考下              Perl对文件的操作,跟其它的语言类似,无非也就是打开,读与写的操作. 1. 打开文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #! c:/perl/bin/perl -w use utf8; use strict; use warnings;   my $filename = 'test.txt'

[Python]学习笔记之文件和异常

python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r"c:\python") 检验给出的路径是否是一个文件:os.path.isfile() 检验给出的路径是否是一个目录:os.path.isdir() 判断是否是绝对路

Android学习笔记——保存文件(Saving Files)

         本人邮箱:JohnTsai.Work@gmail.com,欢迎交流讨论.                 欢迎转载,转载请注明网址:http://www.cnblogs.com/JohnTsai/p/4008854.html             Android设备有两种文件存储区域:                                                 内部存储和外部存储 ("internal" and "external&qu

Android学习笔记-保存文件(Saving Files)_Android

Android设备有两种文件存储区域: 内部存储和外部存储 ("internal" and "external" storage). 这名字来自早期Android,那时大多数Android设备提供两种存储方式:内置的非易失的内存(内部存储)和可移动的存储例如micro SD卡(外部存储). 一些设备将永久内存分为内部和外部两部分,因此即使没有外部存储,依旧有两种存储空间.不管有没有外部存储,API的方法都是一样的. 如我的手机小米2S是16G大小的RAM,不支持SD

Android学习笔记-保存文件(Saving Files)

Android设备有两种文件存储区域: 内部存储和外部存储 ("internal" and "external" storage). 这名字来自早期Android,那时大多数Android设备提供两种存储方式:内置的非易失的内存(内部存储)和可移动的存储例如micro SD卡(外部存储). 一些设备将永久内存分为内部和外部两部分,因此即使没有外部存储,依旧有两种存储空间.不管有没有外部存储,API的方法都是一样的. 如我的手机小米2S是16G大小的RAM,不支持SD

Linux学习笔记之文件服务Vsftp详细介绍

知识点: 1.FTP使用TCP连接和TCP端口 2.在进行通信时,FTP需要建立两个TCP连接: 一个用于控制信息,TCP端口号缺省为21 一个用于数据传输,TCP端口号缺省为20 3.Vsftp是一个基于GPL发布的类Unix系统上的FTP服务器 4.其名称中的VS即"Verysecure"的意思,可见安全性高. 配置: 1.查看是否安装了Vsftp #rpm –qa vsftpd 2.安装 放入第三张光盘 #mount /mnt/cdrom #cd /mnt/cdrom/RedHa

spring学习笔记(2)文件资源访问接口Resource

spring 资源抽象接口下的几个常用实现类 实现类 说明 ClassPathResource 类路径下的资源,资源以相对类路径的方式表示 FileSystemResource 文件系统资源,资源以文件系统路径的的方式表示,如/home/root/test.txt ServletContextResource 为访问web上下文中的资源而设计的类,负责以相对于web应用根目录的路径加载资源,它支持以流和URL的方式访问,在war解包情况下,也可以通过File的方式访问,该类还可以直接从jar包中

ObjectArx学习笔记-选择文件及ACHAR用法

ObjectArx中实现文件选择的代码如下: static void qxzyGetFileD_SelectFile(void) { // Add your code for command qxzyGetFileD._SelectFile here const ACHAR* title = L"选择图形文件"; const ACHAR* path = L"C:\\"; struct resbuf *fileName; fileName = acutNewRb(RT

Perl学习笔记之文件操作_perl

Perl对文件的操作,跟其它的语言类似,无非也就是打开,读与写的操作.1. 打开文件 #! c:/perl/bin/perl -w use utf8; use strict; use warnings; my $filename = 'test.txt'; # 或者用绝对路径,如: c:/perl/Learn/test.txt if(open(MYFILE,$filename)) # MYFILE是一个标志 { printf "Can open this file:%s!", $fil