- 31
- 0
- 约1.27万字
- 约 24页
- 2018-04-15 发布于浙江
- 举报
[2018年最新整理]实验五:复制文件
实验五:复制文件一、实验目的熟悉UNIX和Linux文件系统提供的有关文件操作的系统调用。文件系统是使用计算机信息系统的重要接口。通过使用文件系统的系统调用命令操作文件,以达到对文件系统实现功能的理解和掌握。了解在Windows中,文件系统如何管理保存在磁盘、光盘等存储介质上的信息。并通过文件系统提供的各种API,对文件进行同步和异步读写,深入理解Windows文件系统的功能和作用以及同步I/O和异步I/O的特点。这里引入文件映射对象、命名管道和邮件槽的概念,加深对文件系统的一些先进技术的深入理解。二、程序设计与实现Linux下:1、文件复制函数voidCopyFile(char *fsource,char *ftarget){intfd = open(fsource,0); //打开文件,文件描述符fdr = creat(ftarget,statbuf.st_mode);…totals++;//totals是全局变量,统计总共复制的文件数while((wordbit = read(fd,BUFFER,1024)) 0) //读取源文件字节数0{ write(fdr,BUFFER,wordbit); //写入目标文件 }timeby.actime = statbuf.st_atime; //修改文件的时间信息timeby.modtime = statbuf.st_mtime; close(fd); //关闭文件close(fdr);}2、复制源目录voidMycp(char *fsource,char *ftarget){/*初始化相关变量*/dir = opendir(source); //打开目录,返回指向DIR结构的指针while((entry = readdir(dir)) != NULL) //读目录{if(strcmp(entry-d_name,.) == 0 || strcmp(entry-d_name,..) == 0) //判断目录continue;}if(entry-d_type == 4){ /*参数修改*/stat(source,statbuf); //统计文件属性信息mkdir(target,statbuf.st_mode); //创建目标目录timeby.actime = statbuf.st_atime;timeby.modtime = statbuf.st_mtime; //修改文件存取和修改时间utime(target,timeby);Mycp(source,target);}else //没有子目录,直接复制{/*参数修改*/CopyFile(source,target);//调用文件复制函数 }}3、遍历源目录voidwalkdir(char *dir,char *dedir,int depth){if((dp = opendir(dir))==NULL) /*打开文件出错报错*/if((dedp = opendir(dedir))==NULL)/*目标目录不存在创建目标目录*/ {mkdir(dedir,statbuf.st_mode); //创建目录timeby.actime = statbuf.st_atime; //修改时间属性,存取时间timeby.modtime = statbuf.st_mtime; //修改时间utime(dedir,timeby); }Mycp(dir,dedir); //开始复制}4、main函数—接受源目录和目标目录int main(intargc,char* argv[]){if(argc2){printf(need two parameters!\n);}/*输入参数不足报错*/}Windows下:1、main函数检查是否传递两个目录给程序,传递目录成功则开始遍历目录,否则报错退出if (argc != 3){printf(ARGC ERROR!\n); //参数出错return -1;}else{walkdir(argv[1],argv[2]);//查找目录}2、walkdir函数检查是否打开源目录,失败则报错退出,成功则检查是否已存在目标目录,不存在则创建该目录。两项检查完毕后进行复制操作。if (FindFirstFile(sodir, lpfindfiledata) == INVALID_HANDLE_VALUE){printf(Source Folder does not exist!\n); //查找源文件路径失败}if (FindFirstFile(dedir, lpfindfiledata) == INVALI
您可能关注的文档
- [2018年最新整理]安全知识题目.docx
- [2018年最新整理]安全管理分析报告12.doc
- [2018年最新整理]安全管理制度细则.doc
- [2018年最新整理]安全管理知识 第1章 安全管理概述.ppt
- [2018年最新整理]安全网络知识答题.docx
- [2018年最新整理]安全经验分享—保守秘密 人人有责.ppt
- [2018年最新整理]安全评价师考试真题及答案.docx
- [2018年最新整理]安全考试标准试卷六(山东汇科).doc
- [2018年最新整理]安全资质审批表(表样).doc
- [2018年最新整理]安全评价试题分析.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)