您的位置:首页 > 编程语言 > C语言/C++

VC/MFC(C++)实现文件拷贝和文件删除等

2012-06-06 19:37 791 查看
1、文件拷贝

/////////////////////////////////

//MFC版 文件拷贝

/////////////////////////////////

void FileCopyTo(CString source, CString destination, CString searchStr, BOOL cover = TRUE)

{

CString strSourcePath = source;

CString strDesPath = destination;

CString strFileName = searchStr;

CFileFind filefinder;

CString strSearchPath = strSourcePath + "//" + strFileName;

CString filename;

BOOL bfind = filefinder.FindFile(strSearchPath);

CString SourcePath, DisPath;

while (bfind)

{

   bfind = filefinder.FindNextFile();

   filename = filefinder.GetFileName();

   SourcePath = strSourcePath + "//" + filename;

   DisPath = strDesPath + "//" + filename;

   CopyFile((LPCSTR)SourcePath, (LPCSTR)DisPath, cover);

}

filefinder.Close();

}

/////////////////////////////////

//C++版 文件拷贝

/////////////////////////////////

#include <stdio.h>  

#include <string.h>  

#include <stdlib.h>  

#include <io.h>

#include <windows.h>

void FileCopyTo(char *source, char *dis, char *searchChars, bool bcover /*= true*/)

{   

struct _finddata_t   ffblk;  

char path[256], SourcePath[256], DisPath[256];  

sprintf(path,"%s//q_*",source);  

long done = _findfirst(path,&ffblk);  

int find=0;  

while (find==0)    

{    

   if(strcmp(ffblk.name, "q_"))

   {

   sprintf(SourcePath, "%s//%s",source, ffblk.name);

   sprintf(DisPath, "%s//%s",dis, ffblk.name);

   CopyFile(SourcePath, DisPath, bcover);

   }

   find=_findnext(done,&ffblk);    

}  

_findclose(done);  

}

2、文件删除

//删除文件夹目录(非空)

bool DeleteDirectory(char* sDirName)

{

CFileFind tempFind;

char sTempFileFind[200] ;

sprintf(sTempFileFind,"%s//*.*",sDirName);

BOOL IsFinded = tempFind.FindFile(sTempFileFind);

while (IsFinded)

{

IsFinded = tempFind.FindNextFile();

if (!tempFind.IsDots())

{

char sFoundFileName[200];

strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200));

if (tempFind.IsDirectory())

{

char sTempDir[200];

sprintf(sTempDir,"%s//%s",sDirName,sFoundFileName);

DeleteDirectory(sTempDir);

}

else

{

char sTempFileName[200];

sprintf(sTempFileName,"%s//%s",sDirName,sFoundFileName);

DeleteFile(sTempFileName);

}

}

}

tempFind.Close();

if(!RemoveDirectory(sDirName))

{

return FALSE;

}

return TRUE;

}

-------------------------------------------------------------

方法二(直接调用命令):

#include< stdlib.h >

#include< stdio.h >

int main( )

{

system( "md d://aa//zhao " ); // 在下新建文件夹

system( "del d://aa//zhao " ); // 删除该文件夹下的所有文件

}

文章出处:http://www.diybl.com/course/3_program/vc/vc_js/2008426/111574.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ path system struct