使用c++编写一个console程序,可以模拟dos下文件操作的过程。在windows下,使用"开始"->"运行"->"cmd" 时,会弹出console窗口。在命令行下,输入dir, copy 等命令,可以完成磁盘文件操作功能。此项目就是编制一个程序,模拟这种功能,并且在内存中建立一个真正的内存磁盘,可以任意的创建、删除目录,拷贝、删除文件,列出目录、文件,转移当前所在路径等功能。
1使用面向对象的c++。 使用3种或以上设计模式进行编写。
2运行期间或者程序结束时,不得出现异常退出。用户可以自行使用"exit"退出。
3不得有内存泄露
4不能使用stl(字符串或其他数据结构自己实现),实现一个自己的MyString类
5使用WIN32 SDK或者C RUNTIME LIB都可
6 用户输入命令的必要容错处理和提示
1,程序运行在console窗口
2,初始提示符在C:/ ,不用创建另外的磁盘,不增加其他磁盘符
3,可以使用"mkdir" 创建目录。
目录名称小于256字符。
可以带空格。
目录命名与WINDOWS目录命名规则一致。
大小写不敏感。
目录深度任意。其
他容错处理参考dos的mkdir命令。
4,可以使用"cd"命令在不同目录下转移。
其他容错处理参考dos的cd命令。
5,可以使用"copy"命令把真正硬件磁盘上的任意目录下的文件内容
(把文件按byte拷贝到内存中。不能只记录指针或者文件名),
拷贝到虚拟磁盘任意指定目录中。
命令格式按照dos 中copy的格式。
不用处理带/可选参数。
只需要用户输入被复制文件路径和复制文件路径。
支持通配符。
其他容错处理参考dos的copy命令。
6,可以使用"del"删除任意虚拟磁盘中已经存在的一个文件。
其他容错处理参考dos的del命令。支持通配符。
7,可以使用"rmdir"删除一个目录。
可以带有 /S 命令参数。当有/s 命令时,递归删除目录下所有目录和文件。
其他容错处理参考dos的rmdir命令。
8,可以使用"dir"命令。
输出结果需要和dos下的dir一致。
可以使用 dir /ad 命令 。
可以使用dir /s 命令。
其他容错处理参考dos的dir命令。
9,使用compare 磁盘文件目录文件 虚拟磁盘文件 比较磁盘上和虚拟磁盘上2个文件的内容。
如果完全一致,输出“内容比较一致”,如果不同,输出不同内容的第一处位置,和不同内容的前16个字节。
二进制文件输出16进制数值。文本文件输出字符串。
解决方案如下
<disk.h>
<disk.cpp>
<main.cpp>
代码中有一些功能 读者 可以根据自己的需要更改FindPath()函数 来实现功能转换,写的不好 大家多多见谅
2010-12-16