用MFC实现指定文件夹下所有文件的复制(包括含有子文件夹),删除指定文件夹下所有文件功能
#include <afxwin.h>
#include<stdio.h>//#include <stdafx.h>
using namespace std;
void myCopyDirectory(CString source, CString target)
{
CFileFind finder;
bool bWorking = finder.FindFile(source+"\\*.*");
while (bWorking){
bWorking = finder.FindNextFile();
if (finder.IsDirectory() && !finder.IsDots()){ //是文件夹 而且 名称不含 . 或 ..
CreateDirectory(target + "/" + finder.GetFileName(), NULL);
myCopyDirectory(finder.GetFilePath(), target + "/" + finder.GetFileName()); //递归创建文件夹+"/"+finder.GetFileName()
}
else{ //是文件 则直接复制
CopyFile(finder.GetFilePath(), target + "/" + finder.GetFileName(), FALSE);
}
}
}
void myDeleteDirectory(CString directory_path) //删除一个文件夹下的所有内容
{
CFileFind finder;
BOOL bWorking = finder.FindFile(directory_path + "\\*.*");
while (bWorking){
bWorking = finder.FindNextFile();
if (finder.IsDirectory() && !finder.IsDots()){//处理文件夹
myDeleteDirectory(finder.GetFilePath()); //递归删除文件夹
RemoveDirectory(finder.GetFilePath());
}
else{//处理文件
DeleteFile(finder.GetFilePath());
}
}
RemoveDirectory(directory_path);
}
int main(){
myCopyDirectory("C:\\二级文件夹", "C:\\一级文件夹");
myDeleteDirectory("C:\\三级文件夹");
return 0;
}