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

C++ 递归方式复制文件夹目录

2013-04-10 20:01 176 查看
#include<stdlib.h>
#include<direct.h>

#include<string.h>

#include<io.h>

#include<stdio.h>

#include<iostream>

#include<conio.h>

#include<process.h>

#include<windows.h>


usingnamespacestd;


#defineBUF_SIZE256
intcopyFile(constchar*pSrc,constchar*pDes)
{
FILE*in_file,*out_file;
chardata[BUF_SIZE];
size_tbytes_in,bytes_out;
longlen=0;
if((in_file=fopen(pSrc,"rb"))==NULL)
{
perror(pSrc);
return-2;
}
if((out_file=fopen(pDes,"wb"))==NULL)
{
perror(pDes);
return-3;
}
while((bytes_in=fread(data,1,BUF_SIZE,in_file))>0)
{
bytes_out=fwrite(data,1,bytes_in,out_file);
if(bytes_in!=bytes_out)
{
perror("Fatalwriteerror.\n");
return-4;
}
len+=bytes_out;
printf("copyingfile....%dbytescopy\n",len);
}
fclose(in_file);
fclose(out_file);
return1;
}
/*********************************************************************
功能:复制(非空)目录
参数:pSrc,原目录名
pDes,目标目录名
返回:<0,失败
>0,成功
作者:liuyuanan	2013-04-10
*********************************************************************/
intcopyDir(constchar*pSrc,constchar*pDes)
{
if(NULL==pSrc||NULL==pDes)	return-1;
mkdir(pDes);
chardir[MAX_PATH]={0};
charsrcFileName[MAX_PATH]={0};
chardesFileName[MAX_PATH]={0};
char*str="\\*.*";
strcpy(dir,pSrc);
strcat(dir,str);
//首先查找dir中符合要求的文件
longhFile;
_finddata_tfileinfo;
if((hFile=_findfirst(dir,&fileinfo))!=-1)
{
do
{
strcpy(srcFileName,pSrc);
strcat(srcFileName,"\\");
strcat(srcFileName,fileinfo.name);
strcpy(desFileName,pDes);
strcat(desFileName,"\\");
strcat(desFileName,fileinfo.name);
//检查是不是目录
//如果不是目录,则进行处理文件夹下面的文件
if(!(fileinfo.attrib&_A_SUBDIR))
{
copyFile(srcFileName,desFileName);
}
else//处理目录,递归调用
{
if(strcmp(fileinfo.name,".")!=0&&strcmp(fileinfo.name,"..")!=0)
{
copyDir(srcFileName,desFileName);
}
}
}while(_findnext(hFile,&fileinfo)==0);
_findclose(hFile);
return1;
}
return-3;
}
intmain(intargc,char*argv[])
{
std::cout<<"pleasewait...";
copyDir("D:\\project.KeyManagerClient","D:\\project.KeyManagerClient-副本");
std::cout<<"ok";
return0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐