C++ 递归方式复制文件夹目录
来源:互联网 发布:薛之谦的男装淘宝店 编辑:程序博客网 时间:2024/05/18 00:01
#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>
using namespace std;
#define BUF_SIZE 256int copyFile(const char * pSrc,const char *pDes){
FILE *in_file, *out_file;char data[BUF_SIZE];size_t bytes_in, bytes_out;long len = 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("Fatal write error.\n");return -4;}len += bytes_out;printf("copying file .... %d bytes copy\n", len);}fclose(in_file);fclose(out_file);return 1;}
/*********************************************************************
功能:复制(非空)目录
参数:pSrc,原目录名
pDes,目标目录名返回:<0,失败
>0,成功作者:liuyuanan2013-04-10*********************************************************************/
int copyDir(const char * pSrc,const char *pDes){
if (NULL == pSrc || NULL == pDes)return -1;mkdir(pDes);char dir[MAX_PATH] = {0};char srcFileName[MAX_PATH] = {0};char desFileName[MAX_PATH] = {0};char *str = "\\*.*";strcpy(dir,pSrc);strcat(dir,str);//首先查找dir中符合要求的文件long hFile;_finddata_t fileinfo;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);return 1;}return -3;}
int main(int argc, char* argv[]){
std::cout << "please wait ...";copyDir("D:\\project.KeyManagerClient","D:\\project.KeyManagerClient - 副本");std::cout << "ok";return 0;}
- C++ 递归方式复制文件夹目录
- C# 递归复制文件夹及文件夹目录下的文件
- 递归复制文件夹
- C#递归复制文件夹
- 递归复制文件夹
- 递归复制多级文件夹
- 递归复制文件夹
- C++ 递归方式删除非空目录文件夹
- C语言写递归复制文件夹和文件
- 递归复制目录
- java单个文件复制,递归删除、复制目录下所有内容,递归创建文件夹,.7z文件解压等
- C#递归方法复制文件夹
- 递归的方法复制文件夹
- c# 复制文件夹(递归)
- 文件夹的复制--递归算法
- java递归遍历复制文件夹
- 文件夹操作之----复制目录
- C# 目录(文件夹)复制实现
- 经典计算机书籍
- 改错(2)
- 设计模式-Decorator
- 让Apache支持ASP
- 【模板】kmp以及扩展kmp
- C++ 递归方式复制文件夹目录
- 派生!
- javascript标签在页面中的位置
- 牛顿法
- asp.net mvc3 Ajax 简单应用
- 全排列
- 模板元编程练习
- Chrome中canvas上drawImage无法画出image的解决办法
- 用指针访问对象