Linux C语言实现文件夹拷贝
技术:Linux、C语言
概述
Demo在Linux系统中,用C语言实现文件夹拷贝,实现过程涉及到的知识点有:文件操作、目录操作和切换路径等。
详细
一、相关函数说明:
opendir()
头文件:
#include<sys/types.h>
#include<dirent.h>
功能:
打开一个目录,在失败的时候返回一个空的指针
函数原型:
DIR* opendir(const char * path);
参数:
path --- 打开目录路径
返回值:
成功 --- DIR结构体指针
失败 --- NULL
readdir()
头文件:
#include<dirent.h>
功能:
读取一个目录项中的信息
函数原型:
struct dirent* readdir(DIR* dp);
参数:
dp --- 读取的目录项
返回值:
成功 --- 目录项中的所有信息,存储在dirent结构体中
失败 --- NULL
说明:
struct dirent { long d_ino; //索引节点号 off_t d_off; //在目录文件中的偏移 unsigned short d_reclen; //文件名长 unsigned char d_type; //文件类型 char d_name [NAME_MAX+1]; //文件名,最长255字符 } 文件类型有: DT_BLK 块设备文件 This is a block device. DT_CHR 字符设备文件 This is a character device. DT_DIR 目录文件 This is a directory. DT_FIFO 管道文件 This is a named pipe (FIFO). DT_LNK 链接文件 This is a symbolic link. DT_REG 普通文件 This is a regular file. DT_SOCK 网络通信文件 This is a UNIX domain socket. DT_UNKNOWN 未知文件 The file type could not be determined.
closedir()
头文件:
#include<sys/types.h>
#include<dirent.h>
功能:
关闭一个目录项
函数原型:
int closedir(DIR *dir);
参数:
dir --- 目录项
返回值:
成功 --- 0
失败 --- -1
二、部分代码
/* * 函数名:copy * 功 能:文件拷贝 * 参 数: * srcFilePath --- 源文件路径 * dstFilePath --- 目标文件路径 * 返回值:无 **/ void copy(char *srcFilePath, char *dstFilePath) { int len; FILE *src,*dst; char buf[1024] = {0}; //打开文件 src = fopen(srcFilePath,"r+"); if(!src){ perror("fopen srcFilePath error!"); } dst = fopen(dstFilePath,"w+"); if(!dst){ perror("fopen dstFilePath error!"); } //循环拷贝 while((len = fread(buf,1,1024,src))>0){ fwrite(buf,1,len,dst); } //关闭文件 fclose(src); fclose(dst); }
运行命令:./main source dst
三、实现效果
四、总结
后续跟新以下Demo:
五、项目结构图
本实例支付的费用只是购买源码的费用,如有疑问欢迎在文末留言交流,如需作者在线代码指导、定制等,在作者开启付费服务后,可以点击“购买服务”进行实时联系,请知悉,谢谢
手机上随时阅读、收藏该文章 ?请扫下方二维码