免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4318 | 回复: 6
打印 上一主题 下一主题

[C] 请教高手如何用C语言编程复制一个目录 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-12 17:21 |只看该作者 |倒序浏览
包括复制文件夹下面的所有文件和子文件夹,
并保留文件访问权限
thanks

论坛徽章:
0
2 [报告]
发表于 2004-06-12 21:30 |只看该作者

请教高手如何用C语言编程复制一个目录

如果可以调用system()的话就简单了!

论坛徽章:
0
3 [报告]
发表于 2004-06-12 21:37 |只看该作者

请教高手如何用C语言编程复制一个目录

大家帮我改改吧。。这时del目录的。
  1. #include <stdio.h>;
  2. #include <stdlib.h>;
  3. #include <dirent.h>;
  4. #include <unistd.h>;
  5. #include <sys/types.h>;
  6. int main( void )
  7. {
  8.     DIR* dirp;
  9.     struct dirent* direntp;
  10.     struct stat    buf;
  11.     pid_t          pid;
  12.     dirp = opendir( "/share/tmp" );
  13.     if( dirp == NULL ) {
  14.              perror( "can't open /share/tmp" );
  15.     } else {
  16.         for( ; ; ) {
  17.               direntp = readdir( dirp );
  18.               if( direntp == NULL )
  19.                       rmdir(/share/tmp);
  20.               for( ; ; ) {
  21.                       if(lstat(directp->;s_name,&buf)<0) {
  22.                              printf("lstat error\n");
  23.                              exit(-1);
  24.                       }else{
  25.                              if( ! S_ISDIR(buf.st_mode)) < 0) {
  26.                                      printf("check file mode error\n");
  27.                                      exit(1);
  28.                              }else if
  29.                                      unlink(directp->;s_name) ;
  30.                              else
  31.                                      if((pid=fork())<0) {
  32.                                                printf("fork error\n");
  33.                                                exit(1);
  34.                                      else if(pie == 0 )
  35.                                                chdir(directp->;s_name);
  36.                            
  37. /*          do someting           */
  38.         }
  39.         closedir( dirp );
  40.     }
  41.     return EXIT_SUCCESS;
  42. }
复制代码

论坛徽章:
0
4 [报告]
发表于 2004-06-13 11:16 |只看该作者

请教高手如何用C语言编程复制一个目录

system("rm -rf dirname\r\n";
删除目录
system("cp -r sourdirname destinationdirname\r\n";
复制目录
自己试一试行不行, 我没有用过!~

论坛徽章:
0
5 [报告]
发表于 2004-06-13 11:33 |只看该作者

请教高手如何用C语言编程复制一个目录

其实许多UNIX的命令并不好实现。
或者使用调用SHELL命令的方式,
或者参考源代码,实现自己需要的,
或者不要实现太负责功能,比如不处理目录的深层嵌套。

论坛徽章:
0
6 [报告]
发表于 2004-06-13 13:31 |只看该作者

请教高手如何用C语言编程复制一个目录

devel 的实现还是调用了系统函数unlink,如果调用系统函数的话,不如直接调用int rmdir (const char *path )好了。

我觉得如果想了解系统功能的实现,可以去参考了解一下系统源码,否则,拿别人现成的东西直接用就是了,没必要反复作一些没有实际意义的工作。毕竟,学习的目的不是学习,而是创造价值!

论坛徽章:
0
7 [报告]
发表于 2004-06-13 16:48 |只看该作者

请教高手如何用C语言编程复制一个目录

对目录进行遍历怎么样?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP