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();
【cc文件读写操作总结】推荐阅读:
审计文件归档操作规程09-24
读写结合策略研究07-25
小学语文读写结合10-02
读写结合课题结题报告07-07
如何提升听说读写能力08-25
新视野读写翻译09-23
如何提升初中英语读写能力07-17
小学绘本读写教学08-20
牧场之国读写结合说课稿09-29
读写专题:人与自然和谐相处06-28