cc文件读写操作总结

2024-10-03

cc文件读写操作总结

1.cc文件读写操作总结 篇一

MFC文件操作

一,打开文件对话框

CString szFilters=_T(“txt Files(*.txt)”);

CFileDialog fileDlg(TRUE, _T(“txt”), _T(“*.txt”), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilters, NULL);

if(fileDlg.DoModal()== IDOK){

CString filestr;

};filestr = fileDlg.GetPathName();//得到打开的文件的全路径+后缀

二,打开文件

CFile::CFile(LPCTSTR lpszFileName, UINT nOpenFlags);//CFile构造

lpszFileName文件名

nOpenFlags打开方式,有:

CFile::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文件长度置零,即清除文件原有内容。

CFile::modeRead:只读。

CFile::modeWrite:只写。

CFile::modeReadWrite:以读写方式打开文件。

CFile::modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常。一般与CFile::modeCreate一起使用,则文件不存在时,新建一个文件;存在就进行追加操作(其追加是从起始位置进行覆盖式追加的,所以要与定位配合操作)。

例:1,利用CFile的构造函数打开文件

filestr = _T(“C:UserszktwDesktopnew.txt”);//或用一中获得的路径

CFile RWFile(filestr,CFile::modeCreate | CFile::modeReadWrite | CFile::modeNoTruncate);例2:利用CFile的成员函数

CFilemyfile;

Myfile.open(_T(“路径”), CFile::modeCreate | CFile::modeReadWrite | CFile::modeNoTruncate);

三,文件读写操作

读操作

CFile::Read(void* lpBuf, UINT nCount);从lpBuf指向的地址开始读取nCount 个字节,指针也自动下移nCount

写操作

CFile::Write(const void* lpBuf, UINT nCount);向lpBuf指向的内存地址写入nCount 个字节,指针也自动下移nCount

四,定位

CFile::Seek(LONG lOff, UINT nFrom);从指定位nFrom置偏移lOff字节.nFrom有三种方式,如:

CFile::begin从文件开始移动

CFile::current从当前位置移动

CFile::end从文件末位移动,此时lOff为负值.例: CFile::Seek(0, CFile::end);//定位文件尾

五,关闭打开的文件

CFile::Close();//关闭文件,删除对象,再次对文件读写时必须重新定义对象

六,查找文件是否存在(CFileFind的成员函数)

CStringstrFileTitle;

CFileFindfinder;

BOOLbWorking = finder.FindFile(_T(“C:UserszktwDesktopnew.txt”));

if(bWorking)

{

AfxMessageBox(_T(“文件已存在”);

}

else

AfxMessageBox(_T(“文件不存在”));

finder.close();//结束查找请求释放资源,但是再次发出查找请求时不需要重新定义//CFileFind对象如下:

bWorking = finder.FindFile(_T(“C:UserszktwDesktopnew1.txt”));

。。

finder.close();

CFileFind封装了许多非常有用的成员函数 可以百度一下。

七,创建文件夹

CreateDirectory(_T“路径”,NULL);第一个参数值为文件夹名称,第二个参数值为安全属性,一般设置为NULL即可。如果正确创建,返回值为1,如果没有正常创建文件夹,则返回0。

特别的:该函数每次调用时都只能创建一级文件夹,即文件夹中不能再包含子文件夹。当希望创建含有子文件夹的文件夹时,可以先使用该函数创建一级文件夹,然后再使用该函数在一级文件夹下创建子文件夹。

八,删除文件

DeleteFile(_T(“路径”));

九,删除文件夹

RemoveDirectory(_T(“路径”));//文件夹内没有文件时才会删除成功,可以无限查找”.”带.//文件然后都删除掉,再删除文件夹

十,复制文件

CopyFile(_T(路径),_T(路径),true);//true:目标不能已存在。False:目标可以已存在 例:CopyFile(_T(“C:UserszktwDesktopnew.txt”), _T(“d:newnew.txt”), TRUE);

十一,移动文件或文件夹

MoveFile(_T(路径),_T(路径));//同一目录下即是重命名,移动的时候也可以重命名//移动文件夹时只能在同一盘操作

例:MoveFile(_T(“C:UserszktwDesktopnew.txt”), _T(“d:newnew.txt”));//移动文件 MoveFile(_T(“d:abc”), _T(“d:newabc”));//文件夹移动

注:加粗的文件或文件夹不能已存在十二,复制一个文件夹下所有的文件到另一个目录

CFileFind finder;

CString straddr;

CString strname;

BOOL bfind;

bfind = finder.FindFile(_T(“C:UserszktwDesktopabc*.*”));

while(bfind)

{

bfind = finder.FindNextFile();

straddr.Format(_T(“%s”), finder.GetFilePath());

strname.Format(_T(“d:new%s”), finder.GetFileName());

//MoveFile(straddr, strname);//移动

CopyFile(straddr, strname, TRUE);//复制

}

finder.Close();

上一篇:内部员工介绍人员入厂的奖励办法下一篇:记事作文400字 春游