前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows文件操作基础代码

Windows文件操作基础代码

作者头像
Florian
发布2018-02-05 10:34:50
6490
发布2018-02-05 10:34:50
举报
文章被收录于专栏:技术点滴技术点滴

Windows文件操作基础代码

    Windows下对文件进行操作使用的一段基础代码File.h,首先是File类定义:

代码语言:js
复制
#pragma once
#include<Windows.h>
#include<assert.h>
class File
{
    HANDLE hFile;//文件句柄
public:
 void open(LPCWSTR fileName);
 int read(char*data,int len);
 void movefp(long disp,int type);
 int write(char*data,int len);
 void close();
 static void copy(LPCWSTR src,LPCWSTR des);
 static void move(LPCWSTR src,LPCWSTR des);
 static void del(LPCWSTR name);
};

   File类的实现如下:

   1.打开文件:这里文件打开方式为读写、文件不存在则创建。

代码语言:js
复制
void File::open(LPCWSTR fileName)
{
 //使用CreatFile以读写方式打开一个文件
    hFile=CreateFile(fileName,//文件名
        GENERIC_WRITE|GENERIC_READ,//读写权限
        FILE_SHARE_READ|FILE_SHARE_WRITE//共享读写权限
        ,NULL//安全特性
        ,OPEN_ALWAYS//CREATE_NEW-存在出错,CREATE_ALWAYS-改写存在文件,OPEN_EXISTING-不存在出错,OPEN_ALWAYS-不存在创建
 //TRUNCATE_EXISTING-将现有文件长度缩短为0
        ,FILE_ATTRIBUTE_NORMAL//FILE_ATTRIBUTE^X,X_ARCHIVE-标记归档,X_NORMAL-默认,X_HIDDEN-隐藏,X_READONLY-只读,X_SYSTEM-系统
        ,NULL);
    assert(hFile!=INVALID_HANDLE_VALUE);
}

   2.关闭文件:

代码语言:js
复制
void File::close()
{
    CloseHandle(hFile);
}

   3.读文件:

代码语言:js
复制
int File::read(char*data,int len)
{
    DWORD dwWrite;
 bool rslt=ReadFile(hFile,data,len,&dwWrite,NULL);
    assert(rslt);
 return dwWrite;
}

   4.写文件:

代码语言:js
复制
int File::write(char*data,int len)
{
    DWORD dwWrite;
 bool rslt=WriteFile(hFile,data,len,&dwWrite,NULL);
    assert(rslt);
 return dwWrite;
}

   5.移动文件指针:

代码语言:js
复制
void File::movefp(long disp,int type)
{
    SetFilePointer(hFile,disp,NULL,type);
}

   6.其他文件操作API,复制、移动、删除(可以扩展):

代码语言:js
复制
void File::copy(LPCWSTR src,LPCWSTR des)
{
    assert(CopyFile(src,des,true));
}
void File::move(LPCWSTR src,LPCWSTR des)
{
    assert(MoveFile(src,des));
}
void File::del(LPCWSTR name)
{
    assert(DeleteFile(name));
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-07-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档