文件夹递归拷贝
来源:互联网 发布:前端后端数据库的关系 编辑:程序博客网 时间:2024/06/14 12:48
copy(读取的路径或名字,目标文件的路径或名字)
{
if(读取的是一个文件夹)
{ 创造一个文件夹
打开文件夹,读取文件夹的内容
判断是否是一个文件夹 是:递归copy(xx,xx);
否,说明是个文件,拷贝文件
}
}
- int copy_r(char *read_dir_path, char *write_dir_path)
- {
- DIR * p_dir;
- struct dirent * p_dirent;
- char read_buf[256];
- char write_buf[256];
- sprintf(read_buf,"%s/", read_dir_path);
- sprintf(write_buf,"%s/",write_dir_path);
- strcat(read_dir_path,"/");
- if( Is_dir(read_buf) )
- {
- //mkdir
- if(mkdir(write_buf, 0755) < 0)
- {
- printf("mkdir fall:%s\n", strerror(errno));
- return -1;
- }
- //opendir and readdir
- if((p_dir = opendir(read_buf)) == NULL )
- {
- printf("Usage:cp -r <src_dir> <dat_dir> error:%s\n",strerror(errno));
- return -1;
- }
- while((p_dirent=readdir(p_dir)) != NULL)
- {
- char read_buffer[256];
- char write_buffer[256];
- sprintf(read_buffer,"%s%s", read_buf, p_dirent->d_name);
- sprintf(write_buffer,"%s%s", write_buf, p_dirent->d_name);
- printf("%s\n%s\n",read_buffer,write_buffer);
- //it is a directory
- if( Is_dir(read_buffer) && 0 != strcmp(p_dirent->d_name, ".") && 0 != strcmp(p_dirent->d_name, "..") )
- {
- copy_r(read_buffer, write_buffer);
- }
- else if(0 != strcmp(p_dirent->d_name, ".") && 0 != strcmp(p_dirent->d_name, ".."))
- {
- //copy file
- if( file_copy_line(read_buffer, write_buffer) < 0 )
- return 0;
- }
- }
- closedir(p_dir);
- }
- }
0 0
- vc 递归拷贝文件夹
- 文件夹递归拷贝
- Java递归拷贝文件夹
- 递归实现文件夹的拷贝
- 文件夹拷贝(linux c 递归)
- 递归拷贝一个文件夹(java实现)
- J2SE学习笔记:递归拷贝文件夹
- c#拷贝整个文件夹到指定文件夹下(非递归)
- 代码示例:递归遍历文件夹实现目录拷贝
- linux c编程-实现文件夹的递归拷贝
- Java递归遍历删除拷贝文件以及获取文件夹大小
- 拷贝文件夹
- 拷贝文件夹
- 拷贝文件夹
- 文件夹拷贝
- 拷贝文件夹
- 文件夹拷贝
- 递归拷贝
- apache安装
- 转载java堆栈
- Apache配置虚拟目录
- Merge Sorted Array
- C语言预处理指令与全局局部变量
- 文件夹递归拷贝
- Qt数据库开发指南【译自Qt帮助文档】
- 计算平方根(牛顿迭代法)
- js基础
- NSUserDefaults 与 数据的归档和反归档
- 详解kernel中watchdog 驱动程序
- Linux性能监测:网络篇
- 【DSP C++】2D_FFT
- js基础(2)