MFC文件操作大全.docx

上传人:b****5 文档编号:11939872 上传时间:2023-04-16 格式:DOCX 页数:106 大小:37.32KB
下载 相关 举报
MFC文件操作大全.docx_第1页
第1页 / 共106页
MFC文件操作大全.docx_第2页
第2页 / 共106页
MFC文件操作大全.docx_第3页
第3页 / 共106页
MFC文件操作大全.docx_第4页
第4页 / 共106页
MFC文件操作大全.docx_第5页
第5页 / 共106页
点击查看更多>>
下载资源
资源描述

MFC文件操作大全.docx

《MFC文件操作大全.docx》由会员分享,可在线阅读,更多相关《MFC文件操作大全.docx(106页珍藏版)》请在冰豆网上搜索。

MFC文件操作大全.docx

MFC文件操作大全

1.创建文件夹

CreateDirectory(%%1,NULL);

2.创建文件

CFilefile;

file.Open(%%1,CFile:

:

modeCreate|CFile:

:

modeWrite);

3.删除文件

DeleteFile(%%1);

4.删除文件夹

RemoveDirectory(%%1);

5.删除一个目录下所有的文件夹

CFileFindfinder;

BOOLbWorking=finder.FindFile(%%1+"\\*.*");

while(bWorking)

{

bWorking=finder.FindNextFile();

if(finder.IsDirectory())

{

dir.Delete(finder.GetFilePath());

}

}

6.清空文件夹

RemoveDirectory(%%1);

CreateDirectory(%%1,NULL)

7.读取文件

charsRead[1024];

CFilemFile(_T(%%1),CFile:

:

modeRead);

while(sRead!

=null)

{

mFile.Read(sRead,1024);

CString%%2=CString(sRead);

%%3

}

8.写入文件

CFilemFile(_T(%%1),CFile:

:

modeWrite|CFile:

:

modeCreate);

mFile.Write(%%2,sizeof(%%2));

mFile.Flush();

mFile.Close();

0

2009-5-3114:

56回复

无尾兽零号机

4位粉丝

2楼

9.写入随机文件

charszTempPath[_MAX_PATH],szTempfile[_MAX_PATH];

GetTempPath(_MAX_PATH,szTempPath);

GetTempFileName(szTempPath,_T("my_"),0,szTempfile);

CFilem_tempFile(szTempfile,CFile:

:

modeCreate|CFile:

:

modeWrite);

charm_char='a';

m_tempFile.Write(&m_char,2);

m_tempFile.Close();

//循环写入多个值

strTempA;

inti;

intnCount=6;

//共有6个文件名需要保存

for(i=0;i{strTemp.Format("%d",i);

strTempA=文件名;

//文件名可以从数组,列表框等处取得.

:

:

WritePrivateProfileString("UseFileName","FileName"+strTemp,strTempA,

c:

\\usefile\\usefile.ini);

}

strTemp.Format("%d",nCount);

:

:

WritePrivateProfileString("FileCount","Count",strTemp,"c:

\\usefile\\usefile.ini");

//将文件总数写入,以便读出.

//读出

nCount=:

:

GetPrivateProfileInt("FileCount","Count",0,"c:

\\usefile\\usefile.ini");

for(i=0;i{strTemp.Format("%d",i);

strTemp="FileName"+strTemp;

:

:

GetPrivateProfileString("CurrentIni",strTemp,"default.fil",strTempA.GetBuffer(MAX_PATH),MAX_PATH,"c:

\\usefile\\usefile.ini");

//使用strTempA中的内容.

}

10.读取文件属性

dwAttrs=GetFileAttributes(%%1);

if(dwAttrs&FILE_ATTRIBUTE_READONLY){

%%2

}

if(NORMAL&FILE_ATTRIBUTE_READONLY){

%%3

}

11.写入属性

SetFileAttributes(szNewPath,dwAttrs|FILE_ATTRIBUTE_READONLY);

12.枚举一个文件夹中的所有文件夹

CFileFindfinder;

BOOLbWorking=finder.FindFile(%%1+"\\*.*");

while(bWorking){

bWorking=finder.FindNextFile();

if(finder.IsDirectory()){

CString%%1=finder.GetFilePath();

%%2

}

}

2009-5-3114:

56回复

无尾兽零号机

4位粉丝

3楼

13.复制文件夹

WIN32_FIND_DATAFileData;

HANDLEhSearch;

DWORDdwAttrs;

charszDirPath[]=%%2;

charszNewPath[MAX_PATH];

charszHome[MAX_PATH];

BOOLfFinished=FALSE;

if(!

CreateDirectory(szDirPath,NULL)){

//不能创建新的目录

return;

}

hSearch=FindFirstFile(%%1+"\\*.*",&FileData);

if(hSearch==INVALID_HANDLE_VALUE){

return;

}

while(!

fFinished){

lstrcpy(szNewPath,szDirPath);

lstrcat(szNewPath,FileData.cFileName);

if(CopyFile(FileData.cFileName,szNewPath,FALSE)){

dwAttrs=GetFileAttributes(FileData.cFileName);

if(!

(dwAttrs&FILE_ATTRIBUTE_READONLY)){

SetFileAttributes(szNewPath,

dwAttrs|FILE_ATTRIBUTE_READONLY);

}

}

else{

//不能复制文件

return;

}

if(!

FindNextFile(hSearch,&FileData)){

if(GetLastError()==ERROR_NO_MORE_FILES){

//遍历文件夹完成

fFinished=TRUE;

}

else{

//找不到下一个文件

return;

}

}

}

FindClose(hSearch);

14.复制一个文件夹下所有的文件夹到另一个文件夹下

WIN32_FIND_DATAFileData;

HANDLEhSearch;

DWORDdwAttrs;

charszDirPath[]=%%2;

charszNewPath[MAX_PATH];

charszHome[MAX_PATH];

BOOLfFinished=FALSE;

if(!

CreateDirectory(szDirPath,NULL))

{

//不能创建新的目录

return;

}

BOOLbWorking=finder.FindFile(%%1+"\\*.*");

while(bWorking)

{

bWorking=finder.FindNextFile();

if(finder.IsDirectory()){

hSearch=FindFirstFile(finder.GetFilePath()+"\\*.*",&FileData);

if(hSearch==INVALID_HANDLE_VALUE)

{

return;

}

while(!

fFinished)

{

lstrcpy(szNewPath,szDirPath);

lstrcat(szNewPath,FileData.cFileName);

if(CopyFile(FileData.cFileName,szNewPath,FALSE))

{

dwAttrs=GetFileAttributes(FileData.cFileName);

if(!

(dwAttrs&FILE_ATTRIBUTE_READONLY))

{

SetFileAttributes(szNewPath,

dwAttrs|FILE_ATTRIBUTE_READONLY);

}

}

else

{

//不能复制文件

return;

}

if(!

FindNextFile(hSearch,&FileData))

{

if(GetLastError()==ERROR_NO_MORE_FILES)

{

//遍历文件夹完成

fFinished=TRUE;

}

else

{

//找不到下一个文件

return;

}

}

}

FindClose(hSearch);

}

}

2009-5-3114:

56回复

无尾兽零号机

4位粉丝

4楼

15.移动文件夹

WIN32_FIND_DATAFileData;

HANDLEhSearch;

DWORDdwAttrs;

charszDirPath[]=%%2;

charszNewPath[MAX_PATH];

charszHome[MAX_PATH];

BOOLfFinished=FALSE;

if(!

CreateDirectory(szDirPath,NULL))

{

//不能创建新的目录

return;

}

hSearch=FindFirstFile(%%1+"\\*.*",&FileData);

if(hSearch==INVALID_HANDLE_VALUE)

{

return;

}

while(!

fFinished)

{

lstrcpy(szNewPath,szDirPath);

lstrcat(szNewPath,FileData.cFileName);

if(CopyFile(FileData.cFileName,szNewPath,FALSE))

{

dwAttrs=GetFileAttributes(FileData.cFileName);

if(!

(dwAttrs&FILE_ATTRIBUTE_READONLY))

{

SetFileAttributes(szNewPath,

dwAttrs|FILE_ATTRIBUTE_READONLY);

}

}

else

{

//不能复制文件

return;

}

if(!

FindNextFile(hSearch,&FileData))

{

if(GetLastError()==ERROR_NO_MORE_FILES)

{

//遍历文件夹完成

fFinished=TRUE;

}

else

{

//找不到下一个文件

return;

}

}

}

FindClose(hSearch);

RemoveDirectory(%%1);

2009-5-3114:

56回复

无尾兽零号机

4位粉丝

5楼

16.移动一个文件夹下所有的文件夹到另一个目录下

WIN32_FIND_DATAFileData;

HANDLEhSearch;

DWORDdwAttrs;

charszDirPath[]=%%2;

charszNewPath[MAX_PATH];

charszHome[MAX_PATH];

BOOLfFinished=FALSE;

if(!

CreateDirectory(szDirPath,NULL))

{

//不能创建新的目录

return;

}

BOOLbWorking=finder.FindFile(%%1+"\\*.*");

while(bWorking)

{

bWorking=finder.FindNextFile();

if(finder.IsDirectory()){

hSearch=FindFirstFile(finder.GetFilePath()+"\\*.*",&FileData);

if(hSearch==INVALID_HANDLE_VALUE)

{

return;

}

while(!

fFinished)

{

lstrcpy(szNewPath,szDirPath);

lstrcat(szNewPath,FileData.cFileName);

if(CopyFile(FileData.cFileName,szNewPath,FALSE))

{

dwAttrs=GetFileAttributes(FileData.cFileName);

if(!

(dwAttrs&FILE_ATTRIBUTE_READONLY))

{

SetFileAttributes(szNewPath,

dwAttrs|FILE_ATTRIBUTE_READONLY);

}

}

else

{

//不能复制文件

return;

}

if(!

FindNextFile(hSearch,&FileData))

{

if(GetLastError()==ERROR_NO_MORE_FILES)

{

//遍历文件夹完成

fFinished=TRUE;

}

else

{

//找不到下一个文件

return;

}

}

}

FindClose(hSearch);

RemoveDirectory(finder.GetFilePath().GetBuffer(0));

}

}

17.以一个文件夹的框架在另一个目录创建文件夹和空文件

WIN32_FIND_DATAFileData;

HANDLEhSearch;

DWORDdwAttrs;

charszDirPath[]=%%2;

charszNewPath[MAX_PATH];

charszHome[MAX_PATH];

BOOLfFinished=FALSE;

if(!

CreateDirectory(szDirPath,NULL))

{

//不能创建新的目录

return;

}

hSearch=FindFirstFile(%%1+"\\*.*",&FileData);

if(hSearch==INVALID_HANDLE_VALUE)

{

return;

}

while(!

fFinished)

{

lstrcpy(szNewPath,szDirPath);

lstrcat(szNewPath,FileData.cFileName);

HANDLEhFile=CreateFileHandlehFile=CreateFile(szNewPath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN,NULL);

if(!

hFile)

{

//不能创建文件

return;

}

if(!

FindNextFile(hSearch,&FileData))

{

if(GetLastError()==ERROR_NO_MORE_FILES)

{

//遍历文件夹完成

fFinished=TRUE;

}

else

{

//找不到下一个文件

return;

}

}

}

FindClose(hSearch);

18.复制文件

CopyFile(%%1,%%2,true)

2009-5-3114:

57回复

无尾兽零号机

4位粉丝

6楼

19.复制一个文件夹下所有的文件到另一个目录

//#include

usingstd:

:

string;

charsep='/';

#ifdef_WIN32

sep='\\';

#endif

CFileFindfinder;

BOOLbWorking=finder.FindFile(%%1+"\\*.*");

while(bWorking)

{

bWorking=finder.FindNextFile();

if(!

finder.IsDirectory()||finder.IsDots()){

strings(finder.GetFileName());

CStringsourcefile(%%1);

if(s.rfind(sep,s.length())!

=string:

:

npos)

{

sourcefile=sourcefile+"//"+s.substr(i+1,s.length()-i);

CStringtargetfile(s.substr(i+1,s.length()-i));

targetfile=%%2+"//"+targetfile/;

CopyFile(sourcefile.GetBuffer(0),targetfile.GetBuffer(0),true);

}

}

}

20.提取扩展名

//#include

usingstd:

:

string;

strings(%%1);

size_ti=s.rfind('.',s.length());

if(i!

=string:

:

npos)

CString%%2(s.substr(i+1,s.length()-i));

else

CString%%2="";

21.提取文件名

//#include

usingstd:

:

string;

strings(%%1);

charsep='/';

#ifdef_WIN32

sep='\\';

#endif

size_ti=s.rfind(sep,s.length());

if(i!

=string:

:

npos)

CString%%2(s.substr(i+1,s.length()-i));

else

CString%%2="";

/*

CStringpath(%%1);

CString%%2=path.Mid(path.ReverseFind('\\')+1);

*/

22.提取文件路径

//#include

usingstd:

:

string;

strings(%%1);

charsep='/';

#ifdef_WIN32

sep='\\';

#endif

size_ti=s.rfind(sep,s.length());

if(i!

=string:

:

npos)

CString%%2(s.substr(0,i));

else

CString%%2="";

/*

charappName[MAX_PATH];

GetModualFileName(NULL,appName,MAX_PATH);

*/

2009-5-3114:

57回复

无尾兽零号机

4位粉丝

7楼

23.替换扩展名

//#include

usingstd:

:

string;

strings(%%1);

stringnewExt(%%2);

string:

:

size_typei=s.rfind('.',s.length());

if(i!

=string:

:

npos)

s.replace(i+1,newExt.length(),newExt);

CString%%3(s);

24.追加路径

/*

#include

#include

#include

#include

*/

usingnamespacestd;

usingnamespaceboost:

:

filesystem;

try{

pathp1=complete(path(%%2,native),

path(%%1,native));

pathp2=system_complete(path(%%2,native));

CString%%3(p3);

}

catch(exception&e){

//e.what();

}

25.移动文件

MoveFile(%%1,%%2);

26.移动一个文件夹下所有文件到另一个目录

//#include

usingstd:

:

string;

charsep='/';

#ifdef_WIN32

sep='\\';

#endif

CFileFindfinder;

BOOLbWorking=finder.FindFile(%%1+"\\*.*");

while(bWorking)

{

bWorking=finder.FindNextFile();

if(!

finder.IsDirectory()||finder.IsDots()){

strings(finder.GetFileName());

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1