win32基本文件读写操作

Win32 基本文件读写操作 2011-05-10 22:28        by        Clingingboy,        745        阅读,        0评论,        收藏,        编辑

一.创建文件

HANDLE hFile = ::CreateFile(TEXT("E:\\CreateFileDemo.txt"),     //创建文件的名称。
    GENERIC_WRITE|GENERIC_READ,          // 写和读文件。
    0,                      // 不共享读写。
    NULL,                   // 缺省安全属性。
    CREATE_ALWAYS,          // 如果文件存在,也创建。
    FILE_ATTRIBUTE_NORMAL, // 一般的文件。       
    NULL);                 // 模板文件为空。
if (hFile == INVALID_HANDLE_VALUE) 
{ 
    OutputDebugString(TEXT("CreateFile fail!\r\n"));
}

二.WriteFile写文件

写入缓冲区

const int BUFSIZE = 4096;
char chBuffer[BUFSIZE];          
memcpy(chBuffer,"Test",4);
DWORD dwWritenSize = 0;
BOOL bRet = ::WriteFile(hFile,chBuffer,4,&dwWritenSize,NULL);
if (bRet)
{
    OutputDebugString(TEXT("WriteFile 写文件成功\r\n"));
}

三.FlushFileBuffers刷新文件缓冲区

只有调用了FlushFileBuffers,文件数据才会真正被写入

四.ReadFile读文件

DWORD dwReadSize = 0;
::ZeroMemory(chBuffer,4096);
bRet = ::ReadFile(hFile,chBuffer,4,&dwReadSize,NULL);

if (bRet)
{
    OutputDebugString(TEXT("ReadFile 读文件成功\r\n"));
}
else
{
    //获取出错码。
    DWORD dwError = GetLastError(); 
    //处理出错。            
    TCHAR chErrorBuf[1024];
    wsprintf(chErrorBuf,TEXT("GetLastError()=%d\r\n"),dwError);
    OutputDebugString(chErrorBuf);
}

五.设置文件读写位置

LONG lDistance = 0;
DWORD dwPtr = SetFilePointer(hFile, lDistance, NULL, FILE_BEGIN);

参考:http://blog.csdn.net/linhong34/archive/2008/04/13/2288586.aspx
http://blog.csdn.net/linhong34/archive/2008/04/13/2288671.aspx

SetEndOfFile函数,将当前文件位置设为文件末尾,GetFileSizeEx返回文件末尾大小

::SetEndOfFile(hFile);
LARGE_INTEGER liFileSize;
::GetFileSizeEx(hFile,&liFileSize);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值