⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filesys.h

📁 操作系统的模拟环境编程
💻 H
字号:
#include <stdio.h>
#include <iostream>
#include <vector>
#include <string>
#include "File.h"
#include "Texts.h"
using namespace std ;

Files MyFile;
Texts MyText;
int TextConfig;
string Commands;
int    Te;
void PreShow()//
{
	cout << "         **************************************************************     " << endl;
	cout << "         *       -Help           --------  获得帮助信息               *     " << endl;
	cout << "         *       -CreSFile       --------  创建同一层次文件           *     " << endl;
	cout << "         *       -CreFile        --------  创建子文件                 *     " << endl;
	cout << "         *       -DelFile        --------  删除文件                   *     " << endl;
	cout << "         *       -CreText        --------  创建文本                   *     " << endl;
	cout << "         *       -DelText        --------  删除文本                   *     " << endl;
	cout << "         *       -ShowDir        --------  显示当前所有所在层次文件   *     " << endl;
	cout << "         *       -ChaDir         --------  返回上一层                 *     " << endl;
	cout << "         *       -SFCont         --------  显示文本内容               *     " << endl;
	cout << "         *       -Exit           --------  退出系统不保存             *     " << endl;
	cout << "         *       -Save           --------  保存系统并退出             *     " << endl;
	cout << "         **************************************************************     " << endl;
	cout << endl;
	cout << "                          软件4班  064196  王晖                             " << endl;
	cout << endl;
}
void CreateText()
{
	int Re = 0;
	cout << "请输入文本名"<<endl;
	MyText.Lies++;
	cin  >> MyText.TextName[MyText.Lies][MyFile.FileRow];
	for (int m=1;m<=MyText.Lies;m++)
	{
		for (int n=1;n<=MyText.Lies;n++)
		{
			if (m!=n)
			{
				if ( MyText.TextName[m][MyFile.FileRow]== MyText.TextName[n][MyFile.FileRow])
				{
					cout <<"文件名重复,请重新输入"<<endl;
					cout << "请重新输入文件名"<<endl;
					cin  >> MyText.TextName[MyText.Lies][MyFile.FileRow];
					Re = 1;
				}
				else
				{
					Re = 0;
				}
			}
		}
	}
	if (Re == 0)
	{
		MyText.Contents[MyText.Lies][MyFile.FileRow]=1;
		cout <<"请写入文本内容,以-><-结尾"<<endl;
		MyFile.CurrentDir = MyText.TextName[MyText.Lies][MyFile.FileRow];
		string Txt;
		cin >>Txt;
		/*cout <<a<<endl;*/
		while (Txt!="-><-")
		{			
			MyText.FileContents[MyText.Lies][MyFile.FileRow].push_back(Txt);
			cin >>Txt;
		}
		cout <<"当前文件目录为"<<endl;
		cout <<"MainFile/";
		for (int i =1;i<=MyFile.FileRow-1;i++)
		{
			cout<<MyFile.FileName[MyFile.FileLie][i]<<'/';
		}
		//MyText.Lies++;
		cout <<MyFile.CurrentDir<<"/"<<endl;
		cout << "FileSystem:\\>";
		cin>>Commands;

	}
}
void ChangeDir()
{

	cout <<"当前文件目录为"<<endl;
	cout <<"MainFile/";
	for (int i =1;i<=MyFile.FileRow-1;i++)
	{
		cout<<MyFile.FileName[MyFile.FileLie][i]<<'/';
	}
	cout <<endl;
	cout << "FileSystem:\\>";
	cin  >>Commands;
}
void CreateFile()
{
	TextConfig--;
	cout << "请输入文件名"<<endl;
	cin  >> MyFile.FileName[MyFile.FileLie][MyFile.FileRow];
	MyFile.CurrentDir = MyFile.FileName[MyFile.FileLie][MyFile.FileRow];
	cout <<"当前文件目录为"<<endl;
	cout <<"MainFile/";
	for (int i =1;i<=MyFile.FileRow;i++)
	{
		cout<<MyFile.FileName[MyFile.FileLie][i]<<"/";
	}
	MyFile.FileRow++;
		Te=1;
	cout<<endl;
	cout << "FileSystem:\\>";
	cin>>Commands;
}
void CreSFile()
{
	int Re = 0;
	TextConfig--;
	cout << "请输入文件名"<<endl;
	MyFile.FileLie++;
	MyFile.FileRow--;
	cin  >> MyFile.FileName[MyFile.FileLie][MyFile.FileRow];
	/*MyFile.CurrentDir = MyFile.FileName[MyFile.FileLie][MyFile.FileRow];*/
	for (int m=1;m<=MyFile.FileLie;m++)
	{
		for (int n=1;n<=MyFile.FileLie;n++)
		{
			if (m!=n)
			{
				if (MyFile.FileName[m][MyFile.FileRow]==MyFile.FileName[n][MyFile.FileRow])
				{
					cout <<"文件名重复,请重新输入"<<endl;
					cout << "请重新输入文件名"<<endl;
					cin  >> MyFile.FileName[MyFile.FileLie][MyFile.FileRow];
					Re = 1;
				}
				else
				{
					Re = 0;
				}
			}
		}
	}
	if (Re == 0)
	{
		for (int m=1;m<=MyFile.FileRow-1;m++)
		{
			MyFile.FileName[MyFile.FileLie][m]= MyFile.FileName[MyFile.FileLie-1][m];
		}
		//	MyFile.CurrentDir = MyFile.FileName[FileRow];
		cout <<"当前文件目录为"<<endl;
		cout <<"MainFile/";	
		for (int i =1;i<=MyFile.FileRow;i++)
		{
			cout<<MyFile.FileName[MyFile.FileLie][i]<<"/";
		}
		MyFile.CurrentDir = MyFile.FileName[MyFile.FileLie][MyFile.FileRow];
		MyFile.FileRow++;
		cout<<endl;
		cout << "FileSystem:\\>";
		cin>>Commands;
	}
}
void DeleteFile()
{
	cout <<"确定删除文件 Y/N ?"<<"  "<<MyFile.CurrentDir<<endl;
	char YN;
	cin >> YN;
	if ((YN=='Y')||(YN=='y'))
	{
		for (int m=MyFile.FileRow-1;m<=100;m++)
		{
			MyFile.FileName[MyFile.FileLie][m] = "  ";
		}
		cout <<"当前文件目录为"<<endl;
		cout <<"MainFile/";
		for (int m=1;m<MyFile.FileRow-1;m++)
		{
			cout <<MyFile.FileName[MyFile.FileLie][m]<<"/";
		}
		cout <<endl;
	}
	cout << "FileSystem:\\>";
	cin>>Commands;
}
void Helps()
{
	cout << "输入-CreFile创建文件,创建后,文件目录默认为选中当前文件,如原有文件A,再创建文件B后目录为:A/B/" << endl;
	cout << "输入-CreSFile创建文件,创建后,文件目录默认为选中当前文件,如原有文件MainFile/A/,再创建文件B后目录为:MainFile/B/" << endl;
	cout << "输入-DelFile删除当前目录下所有文件 " << endl;
	cout << "输入-CreText在当前目录下创建文本" << endl;
	cout << "输入-DelText删除当前目录下文本" << endl;
	cout << "输入-ShowDir查询目录文件,此处需要特别注意,比如说你新建了一个文件A,目录为MainFile/A/,此时输入-ShowDir显示的即为A下目录,显然为空,你需要先使用-ChaDir命令返回上一层以便查询目录 " << endl;
	cout << "输入-ChaDir返回上一层 " << endl;
	cout << "输入-SFCont显示文本内容" << endl;
	cout << "输入-Help获得帮助信息"<<endl;
	cout << "输入-Exit退出文件系统" << endl;
	cout << "FileSystem:\\>";
	cin>>Commands;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -