文件操作类
1.创建文件夹
首先添加一下lib
1 #include <Shlwapi.h> //包含了大量的文本文件操作函数 2 void CMyFileTestDlg::OnButton1() //判断文件夹是否存在,不存在就创建文件夹 3 { 4 CString StrPath="c:\\test" ; 5 // 判断路径是否存在 6 if (!PathIsDirectory(StrPath) ) //判断是否存在 7 { 8 CString strMsg; 9 strMsg.Format("指定路径\"%s\"不存在,是否创建?",StrPath); //格式化字符串 10 if (AfxMessageBox(strMsg,MB_YESNO)==IDYES) //接收回传值 11 { 12 if(!CreateDirectory(StrPath,NULL)) //创建文件夹 13 { 14 strMsg.Format("创建路径\"%s\"失败!是否继续?", StrPath); 15 if (AfxMessageBox(strMsg,MB_YESNO)==IDYES) 16 return; 17 } 18 } 19 } 20 else 21 { 22 AfxMessageBox("文件已经存在!"); 23 } 24 }
2.创建文件
1 如果存在文件,就直接打开,如果不存在就创建 2 void CMyFileTestDlg::OnButton1() //判断文件夹是否存在,不存在就创建文件夹 3 { 4 CFile file; 5 if (file.Open("D:\\123.txt",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite))//读写方式打开文件 6 { 7 AfxMessageBox("文件打开成功!"); 8 } 9 }
3.删除文件
1 void CMyFileTestDlg::OnButton1() //判断文件夹是否存在,不存在就创建文件夹 2 { 3 if (DeleteFile("D:\\QQ382477247.txt")) 4 { 5 AfxMessageBox("删除成功!"); 6 } 7 else 8 { 9 AfxMessageBox("删除失败!"); 10 } 11 }
4.删除文件夹
void CMyFileTestDlg::OnButton1() // { if (RemoveDirectory("D:\\123")) { AfxMessageBox("删除成功!"); } else { AfxMessageBox("删除失败!"); } }
5.删除一个目录里面所有文件夹(如果文件夹里面有东西就删不了)
void CMyFileTestDlg::OnButton1() //判断文件夹是否存在,不存在就创建文件夹 { CFileFind finder; CString path; path.Format("%s\\*.*","D:\\123");//设置路径 BOOL bWorking = finder.FindFile(path); if (!bWorking) { AfxMessageBox("目录不存在!"); } while (bWorking) { bWorking = finder.FindNextFile(); if (finder.IsDirectory()) { RemoveDirectory(finder.GetFilePath()); } AfxMessageBox("删除!"); } }
6.文本读取内容
void CFileopreateDlg::OnButton1() //第一种方式 { FILE *pFile=fopen("D:\\1.txt","r"); char ch[100]; memset(ch,0,100);//用0填充ch的100个数组,不填充读的内容后面一部分是乱码 fread(ch,1,100,pFile); MessageBox(ch); } void CFileopreateDlg::OnButton1() //第二种方式 { FILE *pFile=fopen("D:\\1.txt","r"); char *pBuf; fseek(pFile,0,SEEK_END); //光标移动到末尾 int len=ftell(pFile);//光标的偏移位置(也就是文本长度) pBuf=new char[len+1];//把要写入的字符串长度弄成长度+1 rewind(pFile);//把光标弄到开始处 fread(pBuf,1,len,pFile); //读取文件 pBuf[len]=0;//把末尾用0填充 MessageBox(pBuf);//信息框 } void CDreamDlg::OnButton1() //文本读取最好的方法,推荐 { CString mylist ; CFile file("D:\\22.txt",CFile::modeRead); char *pBuf; int iLen=file.GetLength(); pBuf =new char[iLen+1]; file.Read(pBuf,iLen); pBuf[iLen]=0; file.Close(); MessageBox(pBuf); }
7.一行一行的读取文本
void CTest10Dlg::OnButton1() { CStdioFile file; //打开文件 if (!file.Open("D:\\23.txt", CFile::modeRead)) { ::AfxMessageBox(_T("文件打开失败。")); return; } //读文件 CString strText = _T(""); while (file.ReadString(strText)) { AfxMessageBox(strText); } file.Close(); }
8.一行一行的读取文本并把每一行放入数组中
void CTest10Dlg::OnButton1() { CStdioFile file;//定义一个文件操作类 //打开文件 if (!file.Open("D:\\23.txt", CFile::modeRead))//只读方式打开 { ::AfxMessageBox(_T("文件打开失败。"));//打开失败 return; } //读文件 CString strText; CString txt[50]; int i = 0; while (file.ReadString(strText))//每行读取 { txt[i]=strText;//讲读取的内容给数组 AfxMessageBox(txt[i]); i++; } for (i-1;i>=0;i--) //检测数组的每一个成员 { AfxMessageBox(txt[i]); } file.Close(); }//如果文本里面有回车,那么读出来就是空白
9.判断文件是否存在
BOOL FileExist(CString strFileName) { CFileFind fFind; return fFind.FindFile(strFileName); }
10.创建文件夹
#include <imagehlp.h> #pragma comment(lib,"imagehlp.lib") void C_001Dlg::OnButton1() { MakeSureDirectoryPathExists("d:\\1\\2\\"); }//在d盘根目录里面添加一个文件夹1,然后在文件夹1里面添加文件夹2
11删除文件夹
void C_001Dlg::OnButton1() { RemoveDirectory("D:\\1\\2"); }//此函数只能删除空文件夹。如果文件夹非空,本函数会返回FALSE。
12.复制文件
void C_001Dlg::OnButton1() { CopyFile("D:\\1.txt","e:\\1.txt",0); } //复制d盘的1.txt到e盘的1.txt,如果e盘存在就覆盖掉 BOOL CopyFile( LPCTSTR lpExistingFileName, //源文件名 LPCTSTR lpNewFileName, //目标文件名 BOOL bFailIfExists ); //如果设为TRUE(非零),那么一旦目标文件已经存在,则函数调用会失败。否则目标文件被改写
13.移动文件
void C_001Dlg::OnButton1() { MoveFile("D:\\1.txt","e:\\2\\1.txt"); }//不能移动文件夹
14.重命名
void C_001Dlg::OnButton1() { rename("D:\\1.txt","D:\\33.txt"); } //函数原型int rename( const char *oldname, const char *newname );
15.往文件里面写内容
void CMyFileTestDlg::OnButton1() { CFile mFile("D:\\123.txt", CFile::modeWrite|CFile::modeCreate); mFile.Write("往里面写入一句话!",sizeof("往里面写入一句话!")); mFile.Flush(); mFile.Close(); }
16.创建一个文件夹
方法一、CreateDirectory函数 查了下MSDN,发现该函数用起来十分方便 BOOL CreateDirectory( LPCTSTR lpPathName, // pointer to directory path string LPSECURITY_ATTRIBUTES lpSecurityAttributes // pointer to security descriptor ); 第一个参数值为文件夹名称,第二个参数值为安全属性,一般设置为NULL即可。如果正确创建,返回值为1,如果没有正常创建文件夹,则返回0。