VC/MFC(C++)實現文件拷貝和文件刪除等

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


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