欢迎来到天天文库
浏览记录
ID:47493970
大小:179.01 KB
页数:21页
时间:2020-01-12
《操作系统 模拟文件管理 大作业》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计二:模拟文件管理一.设计目的(1)建立一个简单的模拟文件管理系统。(2)理解用户界面和操作命令在操作系统中的作用。二.设计要求需要实现一个命令行操作界面,包含如下命令:1.创建文件功能:创立一个指定名字的新文件,即在目录中增加一项,不考虑文件内容,但必须能输入文件长度。2.删除文件功能:删除指定的文件3.创建目录功能:在当前路径下创建指定的目录。4.删除目录功能:删除当前目录下的指定目录,如果该目录为空,则可删除,否则应提示是否作删除,删除操作将该目录下的全部文件和子目录都删除。5.改变目录功能:工作目录转移到指定的目录下,只要求完成改变到当前目录的某一个子目
2、录下的功能,不要求实现相对目录以及绝对目录。6.显示目录功能:显示全部目录以及文件,输出时要求先输出接近根的目录,再输出子目录。对于重名(创建时),文件不存在(删除时),目录不存在(改变目录时)等错误情况,程序应该作出相应处理并给出错误信息。界面的提示符为#,提示的命令以及调试的方法应和前面的要求一致,可以自己设计更多的命令或者附加功能。三.环境本实验是在windowsxp+vc6.0环境下实现的,利用windowsSDK提供的系统接口(API)完成程序功能。在windowsxp下安装好VC后进行,VC是一个集成开发环境,其中包含了windowsSDK所有工具,所以就
3、不用单独在安装SDK了,程序中所用的API是操作系统提供的用来进行应用程序设计的系统功能接口。要使用这些API,需要包含对这些函数进行说明的SDK头文件,最常见的就是windows.h。一些特殊的API调用还需要包含其他的头文件。四.步骤1.打开VC,选择菜单项File->New,选择Project选项卡并建立一个名为filesys的win32consoleapplication工程。2.在工程中创建原文件filesys.cpp:选择菜单项Project->AddtoProject->File,此时将打开一个新窗口,在其中输入想要创建的文件名字,这里是filesys.
4、cpp,在其中编辑好原文件并保存。3.通过调用菜单项Build->Rebuildall进行编译连接,可以在指定的工程目录下得到debug->filesys.exe程序,可以在控制台进入该debug目录运行程序了。五.源代码程序:#include#include#include#include#include#defineFILENAME_LEN21#defineINPUT_LEN81#defineCOMMAND_LEN11usingnamespacestd;//结点结构st
5、ructFileNode{charfilename[FILENAME_LEN];//文件名/目录名intisdir;//目录文件识别标志inti_nlink;//文件的链接数intadr;//文件的地址structFileNode*parent,*child;//指向父亲的指针和指向左孩子的指针structFileNode*sibling_prev,*sibling_next;//指向前一个兄弟的指针和指向//后一个兄弟的指针.};voidInit();//初始化文件树intParseCommand();//接受输入的命令并把其分解成操作名和路径文件名voidExec
6、uteCommand();//执行命令intcdComd();//处理cd命令intcreatComd();//处理creat命令intdelComd();//处理del命令intdirComd();//处理dir命令intmdComd();//处理md命令intrdComd();intFindPath(char*ph);//寻找参数ph所指向的路径intFindFilename(charPara2[]);//从参数Para2中找到要建立或删除的文件、目录名,并把指针只想其父亲结点structFileNode*CreateFileNode(charfilename[]
7、,intisdir,inti_nlink);//创建结点intGetInput(char*buffer,unsignedintbuffer_len);//获取输入intCheckCommand();//命令检查intGetDir(intbegin,char*path,char*curDir);//获取路径voidTrim(char*str);structFileNode*cp,*tp,*root;charpath[INPUT_LEN-COMMAND_LEN];//记录当前走过的路径charPara1[COMMAND_LEN],Para2[INPUT_
此文档下载收益归作者所有