MFC文件CFile

概述

1 MFC文件相关

   CFile-父类是CObject,封装了文件操作的API,提供了文件创建以及读写操作。CFileFind-文件搜索,父类也是CObject。文件查找操作

2 CFile的使用

     2.1 打开或者创建文件CFile::Open

     2.2 数据读写 CFile::Read/Write

     2.3 文件的关闭 CFile::Close

     2.4 文件指针CFile::SeekToBegin;CFile::SeekToEnd;CFile::Seek

     2.5 CFile::Flush-强制将缓冲区的数据写入到硬盘文件Buffer-文件缓冲区。 执行文件关闭操作CFile::Close,系统会自动调用Flush函数。

     2.6 LockRange/UnLockRange当多个程序同时操作一个文件时,可以锁定指定位置和字节数量的文件区域,这个区域的数据,其它程序不能修改,解锁后才可以修改。     

     2.7 CFile::GetStatus/SetStatus获取/设置文件的状态信息,保存在CFileStatus结构

 3 CFileFind-文件查找

    3.1 FindFile-开始查找

    3.2 FindNextFile-查找下一个,依次遍历查找结果调用一系列的GetXXX函数,获取文件信息;或者调用一系列的IsXXX函数,判断文件的信息

    3.3 Close-关闭查找   

实例

新建MFC的MFCFile工程,删除掉自动生成的文件,并设置 属性->链接器->系统->子系统  控制台 (/SUBSYSTEM:CONSOLE)

#include "stdafx.h"  

CWinApp theApp;
void File()
{
	CFile file;
	BOOL bRet=file.Open(L"c:\\mfcfile.txt",CFile::modeCreate|CFile::modeReadWrite);//打开或者创建文件
	if (!bRet)
	{
		return;
	}
	try
	{//文件读写
		char str[]="Hello CFile";
		file.Write(str,strlen(str));
		file.SeekToBegin();
		char szText[128]={0};
		file.Read(szText,128);
		printf("%s\n",szText);
	} 
	catch (CFileException* e)
	{
	} 
	file.Close();//关闭文件
} 
void Statu()
{
	CFileStatus status;
	CFile::GetStatus(L"c:\\mfcfile.txt",status); //获取文件状态的信息,保存到status中
	CTimeSpan span(366,0,0,0);
	status.m_ctime-=span;//把创建的时间改成去年
	CFile::SetStatus(L"c:\\mfcfile.txt",status);//设置文件的状态信息
}
void Find(CString strPath)
{
	CFileFind find;
	BOOL bFind=find.FindFile(strPath+"*.*");//开始查找
	while(bFind)
	{
		bFind=find.FindNextFileW();
		CString strName=find.GetFileName();//获取文件名称
		strPath=find.GetFilePath();//获取路径
		if (find.IsDirectory()&& !find.IsDots())
		{
			wprintf(L"Derectory:%s\n",strName);
			Find(strPath+L"\\*.*");
		}
		else
		{
			wprintf(L"file: %s\n",strName);
		}
	}
	find.Close();//结束查找
}
void main()
{
	File(); 
	Statu();
	Find(L"c:\\COMRaider\\");
}

结果:MFC文件CFile_第1张图片

你可能感兴趣的:(MFC文件CFile)