VC++下的文件操作.docx

上传人:b****8 文档编号:27788678 上传时间:2023-07-05 格式:DOCX 页数:10 大小:135.72KB
下载 相关 举报
VC++下的文件操作.docx_第1页
第1页 / 共10页
VC++下的文件操作.docx_第2页
第2页 / 共10页
VC++下的文件操作.docx_第3页
第3页 / 共10页
VC++下的文件操作.docx_第4页
第4页 / 共10页
VC++下的文件操作.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

VC++下的文件操作.docx

《VC++下的文件操作.docx》由会员分享,可在线阅读,更多相关《VC++下的文件操作.docx(10页珍藏版)》请在冰豆网上搜索。

VC++下的文件操作.docx

VC++下的文件操作

C语言文件操作函数

头文件

//打开文件

FILE*fopen(constchar*filename,constchar*mode);

参数说明:

filename文件名,支持当前路径和全路径。

注:

反斜杠要使用转义字符\->\\

mode文件打开方式:

//关闭文件

fclose(FILE*);

//读写字符

intfputc(intc,FILE*stream);

intfgetc(FILE*stream);

注:

读写成功则返回字符,失败则返回EOF(即-1)

//读写字串

//格式化IO

fprintf(fp,格式串,输出变量列表);

fscanf(fp,格式串,输入变量地址表列);

以上各读写函数适用于文本文件

//二进制文件读写,结构体(块)读写

size_tfread(void*buf,size_tsize,size_tcount,FILE*stream);

size_tfwrite(constvoid*buf,size_tsize,size_tcount,FILE*stream);

参数说明:

buf数据块指针,可以是结构体

size一次读写的单位字节的倍数

count指定size的个数,即读写数据量为count*size(B)

stream文件指针

//文件定位

voidrewind(FILE*fp);//返回文件开头

intfseek(FILE*fp,longoffset,longorigin);//一般用于二进制文件

参数说明:

offset偏移量,单位:

字节

origin(偏移量的)起始点,有值

//取得文件当前位置(相对于文件开头)

longftell(FILE*fp);//若不存在文件,返回-1

//判结束

feof(FILE*fp);//若结束返回非零值

 

VC++6.0MFC提供的CFile类

其中,CSocketFile操作内存文件,CStudioFile操作文本文件。

注:

各种非互斥参数可以通过“|”连结起来。

部分成员函数

//打开文件

virtualBOOLOpen(LPCTSTRlpszFileName,UINTnOpenFlags,CFileException*pError=NULL);

CFileException为文件异常类,pError->m_cause为错误码(异常原因),pError->m_sttrFileName为异常文件名,pError->m_IOsError为系统I/O异常原因。

//关闭文件,删除对象

voidClose();

//关闭文件,忽略警告和错误

voidAbort();

//I/O方法

virtualUINTRead(void*buf,UINTcount);throw(CFileException);

virtualUINTWrite(void*buf,UINTcount);throw(CFileException);

参数说明:

buf进行读写数据块(可以是结构体和类)的指针

count读写字节数

//文件定位

virtualLONGSeek(LONGIOff,UINTnForm);throw(CFileException);

参数说明:

IOff(相对于nForm的)偏移量(单位:

字节)

nForm有值:

CFile:

:

begin\CFile:

:

current\CFile:

:

end.

voidSeekToBegin();throw(CFileException);

DWORDSeekToEnd();throw(CFileException);

//获取文件当前位置

virtualDWORDGetPosition()const;throw(CFileException);

//文件状态操作

BOOLGetStatus(CFileStatus&rStatus)const;

staticBOOLPASCALGetStatus(LPCTSTRlpszFileName,

CFileStatus&rStatus);

staticvoidSetStatus(LPCTSTRlpszFileName,constCFileStatus&rStatus);throw(CFileException);

参数说明:

rStatus为CFileStatus的引用。

CFileStatus的以下成员:

CTimem_ctime文件创建时间

CTimem_mtime文件最后更改时间

CTimem_atime文件最近访问时间

LONGm_size文件逻辑大小,单位:

字节

BYTEm_attribute文件属性

有值:

32(非只读,非隐藏)、33(只读,非隐藏)、34(非只读,隐藏)、35(只读,隐藏)

charm_szFullName[MAX_PATH]文件全路径名(含文件名)

 

文件查找类CFileFind

部分成员函数:

//判文件是否存在

virtualBOOLFindFile(LPCTSTRname,DWORDdwUnused=0);

参数说明:

name指定要查找的文件,可以用过滤器(如"*.*")

dwUnused系统保留,必须为0

//移判下一个文件是否存在

virtualBOOLFindNextFile();

注:

该函数与FindFile配对使用,调用该函数后将最近的FindFile要查找的文件句柄传给FindFile对象.

//判断是否是目录

BOOLIsDirectory();

//判断是否是“.或..”目录

BOOLIsDots();

//获取文件名

CStringGetFileName();

CStringGetFileTitle();

//获取文件(全)路径

CStringGetFilePath();

 

API文件操作函数(直接使用)

//文件复制

BOOLCopyFile(

LPCTSTRlpExistingFileName,//指定现有文件名

LPCTSTRlpNewFileName,//指定新文件名

BOOLbFaillfExits,//如果新文件存在则指定操作方式(false强制覆盖)

);

//创建目录

BOOLCreateDirectory(

LPCTSTRlpPathName;//要创建的目录路径

NULL//第二参数不理解,一般为NULL

);

//获取当前路径

TCHARpath[MAX_PATH];

GetCurrentDirectory(MAX_PATH,path);

//删除文件

BOOLDeleteFile(LPCTSTRlpFileName);

//重命名文件或目录

BOOLMoveFile(LPCTSTRlpExistingFileName,LPCTSTRlpNewFileName);

//文件删除到回收站

IntSHFileOperation(

LPSHFILEOPSTRUCTlpFileOp;//指向LPSHFILEOPSTRUCT结构

);

参数说明:

lpFileOp为指向SHFILEOPSTRUCT结构的指针,即LPSHFILEOPSTRUCT为

SHFILEOPSTRUCT的指针类型。

SHFILEOPSTRUCT的成员变量:

HWNDhWnd

窗口句柄,一般为NULL

UINTwFunc

操作类型,如FO_DELETE、FO_MOVE(移动)

LPCSTRpFrom

源文件名

LPCSTRpTo

目标文件名

FILEOP_FLAGSfFlags

操作标记

BOOLfAnyOperationsAborted

操作选择位,一般不管

LPVOIDhNameMappings

文件映射,一般为NULL

LPCSTRlpszProgressTitle

文件操作进度窗口标题

注:

pFrom与pTo指向的字符缓冲区末尾要含2个以上的'\0'。

fFlags的各种操作标记

FOF_FILESONLY

只操作文件

FOF_ALLOWUNDO

允许从回收站恢复文件

FOF_NOCONFIRMATION

目标文件存在时不进行覆盖确认

FOF_NOERRORUI

不显示错误提示

FOF_RENAMEONCOLLISION

存在文件名冲突时重命名

FOF_SILENT

不显示进度对话框

FOF_WANTMAPPINGHANDLE

要求返回处于操作状态的实际文件列表

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1