vc中的文件操作

?︹?? File Operations in VC
1:Find the file

CString strFileName;
CFileFind finder;
BOOL bWorking=finder.FindFile(”c:/windows/*.cab”);
if(bWorking)
{
bWorking=finder.FindNextFile();
strFileName=finder.GetFileName();//or finder.GetFileTitle();
}


2:Open or Save file

CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,”All Files(*.*)|*.*||”

,AfxGetMainWnd());

3:Read and Write File

//Read File
char cRead[10];

CFile mFile(_T(”test.txt”),CFile::modeRead);
if(mFile.GetLength()<2)
return ;
mFile.Read(cRead,10);
mFile.Close();
//Write File:

CFile mFile(_T(”test.txt”),CFile::modeWrite|CFile:modeCreate);
mFile.Write(cRead,10);
mFile.Flush();
mFile.Close();


More Powerful Class: CArchive
//Write
CString strTemp;
CFile mFile;
mFile.Open(”c:/test.txt”,CFile::modeWrite|CFile::modeNoTruncate|CFile::modeCreate);
CArchive ar(&mFile,CArchive::store);
ar<<strTemp;
ar.Close();
mFile.Close();

//Read
CFile mFile;
if(mFile.Open(”c:/test.txt”,CFile::modeRead)==0)
return;
CArchive ar(&mFile,CArchive::load);
ar>>strTemp;
ar.Close();
mFile.Close();

using CArchive, you can also to WriteObject,ReadObject,WriterClass,ReadClass


if you only to read or write a simple line string, use CStdioFile

CStdioFile mFile;
CFileException mExcept;
mFile.Open(”c:/test.txt”,CFile::modeWrite,&mExcept);
CString str=”hello world”;
mFile.WriteString(string);
mFile.Close();

4:Using temp file

char szTempPath[_MAX_PATH],szTempFile[_MAX_PATH];
GetTempPath(_MAX_PATH,szTempPath);
GetTempFileName(szTempPath,_T(”my_”),0,szTempFile);
CFile m_tempFile(szTempFile,CFile::modeCreate|CFile::modeWrite);
char m_char='a';
m_TempFile.Write(&m_char,2);
m_TempFile.Close();

5:Copy or remove file:
For in the MFC there is no methods or classes,so use SDK functions: CopyFile(),DeleteFile(),CreateDirectory(),MoveFile()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章