计算机病毒报实验报告
一.题目: Windows 命令接口之文件与目录命令
二.设计任务,要求,目的:
1.设计任务:
(1)为Windows操作系统建立兼容的DOS命令接口,文件与目录命令
(2)具体命令:DIR,RD,CD,MD,DEL,MOVE,REN,XCOPY,命令格式可参考Windows的CMD.EXE或MS-DOS提供的命令格式
设计命令的名称,参数等格式
可以字符形式接受命令,执行命令,然后显示命令执行结果
操作系统接口:Windows命令接口。(3人) 4分
为Windows操作系统建立兼容的DOS命令接口,文件与目录命令;
具体命令:DIR, RD,CD,MD, DEL,MOVE,REN, COPY, XCOPY, CLS, DATE,TIME, SORT,TYPE ,重定向命令>,<.>
设计命令的名称、参数等格式。
可以字符形式接收命令,执行命令,然后显示命令执行结果;
2.设计要求及目的:
(1)能够正确显示一个目录里面的子目录和文件dir
(2)能够删除一个空目录rd
(3)能够打开一个存在的目录cd
(4)能够建立一个空目录md
(5)能够删除一个文件del
(6)能够移动一个目录或文件move
(7)能够重命名一个目录或文件ren
(8)能够拷贝整个目录copy(内部,不能复制文件夹下的文件)
(9)能够拷贝整个目录xcopy(外部,不能连接文件)
三:开发环境:
PC机一台 386以上
VC++6.0
实现语言:C
四:原理及算法描述:
1.基本原理:
用户利用联机命令接口实现与机器的交互时,先在终端的键盘上打入所需的命令,由终端处理程序接受该命令,并将它显示在终端屏幕上。当一条命令输入完后,由命令解释程序对命令进行分析,然后执行相应命令的处理程序。
2.算法描述:
(1)存贮输入的各命令参数
void store_parameter(char *buffer,char *parameter[10],int *para_num)
说明:将输入的命令一条一条存储parameter[10]中,最大允许的参数个数为10个。
算法描述:为buffer设置一个指针buffer_point,如果该指针向下移动,碰到空格,继续向下移动,直到遇到字符,读进各存储变量中parameter[10],最后如果遇到’\0’,则结束。
(2)浏览一个路径下的目录和文件
void my_dir(char *a[],int *num)
说明:该命令只能显示当前目录中的文件和子目录和当前目录中子目录中的文件和子目录。并无如Windows中命令参数如此丰富。主要是考虑其复杂性,予以简化了。
算法描述:如果只接受到mydir命令,后面并无其他参数时,显示当前目录下文件和子目录。如果接受到两个参数,如果第二个参数(表示当前目录中子目录)存在,则显示该目录下文件和子目录,如果不存在,则报错。
(3)删除一个存在的目录,如果不存在,删除失败!
void my_rd(char *a[],int *num)
算法描述:如果该目录存在且为空目录,则删除,否则失败。
(4)打开一个存在的目录,如果不存在,打开失败!
void my_cd(char *a[],int *num)
算法描述:如果接受到两个参数,第二个参数表示要打开的目录。如果该目录存在,则成功,否则失败。
(5)创建一个目录
void my_md(char *a[],int *num)
算法描述:如果接受到两个参数,第二个参数表示要建立的目录。如果存在该目录,失败,否则成功。
(6)删除一个存在的文件,如果不存在,删除文件失败!
void my_del(char *a[],int *num)
算法描述:如果接受到两个参数,第二个参数表示要删除的文件。如果该文件存在,则删除成功,否则失败。
(7)移动一个存在的文件,否则,移动失败
void my_move(char *a[],int *num)
算法描述:如果接受到三个参数,其中第二个参数表示存在的文件或目录,第三个参数表示将要移动到的参数。如果第二个参数不存在,则失败,存在,成功。
(8)重命名一个已经存在的文件,否则,重命名失败!
void my_ren(char *a[],int *num)
算法描述:如果接受到三个参数,其中第二个参数表示将要重命名的目录或文件,第三个参数表示将要重命名的新的名字。
(9)拷贝文件
void my_xcopy(char *a[],int *num)
算法描述:如果接受到三个参数,其中第二个参数表示存在的目录或文件,第三个表示将要拷贝成的目录或文