• 大小: 23KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: C/C++
  • 标签: fileSystem  

资源简介

开发工具:word,vc win32api 设计和实现一个简单的文件系统,要求包括目录、普通文件和文件的存储 文件系统的目录结构采用类似Linux的树状结构; 要求模拟的操作包括: 目录的添加、删除、重命名; 目录的显示(列表) 文件的添加、删除、重命名 文件和目录的拷贝 用户进入时显示可用命令列表;用户输入help时显示所有命令的帮助文档; 输入某个命令+?时显示该条命令的使用说明 用户输入exit时退出该系统 实验实现基于windows平台; 实验开发语言可以选用C/c++

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include 

using namespace std;

typedef struct FCB
{
string FileName; //文件名
string FileType; //文件类型
vector * subdirectory; //下一级目录地址
vector * updirectory; //上一级目录地址
string parent; //父文件夹名
SYSTEMTIME creating_time; //创建时间
// SYSTEMTIME last_modified_time; //最近访问时间
string status; //文件状态
string details;//文件内容
}FCB;

FCB fileCopy;//全局变量,用于保存复制或剪切的文件或文件夹

//登录
void Login()
{
string namepassword;
cout <<“\n\n\n“;
cout <<“\t\t            操作系统大型试验-模拟文件系统“< cout <<“\t\t             作者:XXX“< system(“pause“);
    system(“cls“);
}

//显示时间
void show_time(SYSTEMTIME& sys)
{
cout << sys.wYear << “/“ << sys.wMonth << “/“ << sys.wDay << “ “ << sys.wHour << “:“ << sys.wMinute << “:“ << sys.wSecond;
}

//显示当前目录中的所有文件和文件夹
void dir(vector& a)
{
int length = a.size();
int i = 0;
for(i=1;i {
if(a[i].FileType != ““)
{
cout << “文件“< cout << “.“ << a[i].FileType< cout << “    创建时间: “;
show_time(a[i].creating_time);
cout </// show_time(a[i].last_modified_time);
cout < cout << a[i].status << endl< }
else
{
cout << “文件夹“+a[i].FileName< cout << “      创建时间: “;
show_time(a[i].creating_time);
cout << endl<<“      最近访问时间: “;
// show_time(a[i].last_modified_time);
cout << endl<<“      状态: “;
cout << a[i].status << endl< }
}
if(i==1) cout<<“当前目录下没有内容!“<}

//显示帮助信息
void help()
{
cout << “dir  “ << “显示当前目录中的所有文件和文件夹“ << endl;
cout << “help  “ << “显示帮助信息“ << endl;
cout << “命令+?  “ << “显示该命令的说明文档,如:dir?“ << endl;
cout << “create xxx  “ << “在当前目录中创建文件xxx.yyy或文件夹xxx“ << endl;
cout << “delete xxx  “ << “在当前目录中删除文件xxx.yyy或文件夹xxx“ << endl;
cout << “open xxx  “ << “打开当前目录中的文件xxx.yyy或文件夹xxx“ << endl;
cout << “close xxx  “ << “关闭当前目录中的文件xxx.yyy或文件夹xxx“ << endl;
cout << “cd ..  “ << “返回到上一级目录“ << endl;
cout << “cd xxx  “ << “转到当前目录的xxx子目录“ << endl;
cout << “cd root  “ << “转到根目录root“ << endl;
cout << “rename xxx yyy  “ << “重命名“ << endl;
cout << “copy xxx  “ << “复制“ << endl;
cout << “cut xxx  “ << “剪切“ << endl;
cout << “paste  “ << “粘贴“ << endl;
cout << “attrib xxx  “ << “显示xxx文件或文件夹的属性“ << endl;
cout << “exit  “ << “退出“ << endl<}

//判断是否是帮助请求命令
bool is_require(string& str)
{
return (str[str.length()-1] == ‘?‘);
}

//显示命令的说明
void command_explan(string& command)
{
if(command==“dir?“) cout << “\“dir\“命令用于显示当前目录中的所有文件和文件夹“ << endl< else if(command==“help?“) cout << “\“help\“命令用于显示帮助信息“ << endl< else if(command==“create?“) cout << “\“create\“命令用于在当前目录中创建文件或文件夹,如:create hello.txtcreate hello注意:创建文件必须有扩展名,无扩展名则认为是文件夹文件和文件不能同名,文件夹和文件夹不能同名,文件和文件夹可以同名“ << endl< else if(command==“delete?“) cout << “\“delete\“命令用于在当前目录中删除文件或文件夹,如:

评论

共有 条评论