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

📄 filesys.cpp

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


int main ()
{
	PreShow();
	vector<string>::iterator   Pos[100];
	MyFile.FileRow = 1;
	MyFile.FileLie = 1;
	MyText.Lies    = 1;
	MyFile.TextAmount = 0;
	TextConfig = 0;
	int FileSets;
	cout <<"确定加载文件系统?Y/N"<<endl;
	char YoN;
	cin >>YoN;
	if ((YoN=='Y')||(YoN=='y'))
	{
		ifstream GetFileSys("c:\\MyFile.txt");
		GetFileSys>>MyText.Lies;
		GetFileSys>>MyFile.FileRow;
		GetFileSys>>MyFile.FileLie;
		GetFileSys>>MyFile.TextAmount;
		for (int m=1;m<=MyFile.FileLie;m++)
		{
			for (int n=1;n<=MyFile.FileRow;n++)
			{
				GetFileSys>>MyFile.FileName[m][n];
			}
		}
		for (int m=1;m<=MyText.Lies;m++)
		{
			for (int n=1;n<=MyFile.FileRow;n++)
			{
				GetFileSys>>MyText.TextName[m][n];
				/*cout <<"Text名字:"<<MyText.TextName[m][n];*/
			}
		}
		for (int m=1;m<=MyText.Lies;m++)
		{
			int g=1;
			for (Pos[g]=MyText.FileContents[m][MyFile.FileRow].begin();Pos[g]!=MyText.FileContents[m][MyFile.FileRow].end();Pos[g]++)
			{
				GetFileSys >>*Pos[g];
				/*cout <<*Pos[g];*/

			}
			g++;
		}  
		cout <<"MyFile.TextAmount值为: "<<MyFile.TextAmount<<endl;
		cout <<"FileLie值为: "<<MyFile.FileLie<<endl;
		cout <<"FileRow 值为: "<<MyFile.FileRow<<endl;
		cout <<"TextLies 值为: "<<MyText.Lies<<endl;
		cout <<"MyFile.FileName[MyFile.FileLie][MyFile.FileRow] 值为: "<<endl;
		cout <<"当前文件目录为"<<endl;
		cout <<"MainFile/";
		if (MyText.Lies==1)
		{
			for (int i =1;i<=MyFile.FileRow-1;i++)
			{
				cout<<MyFile.FileName[MyFile.FileLie][i]<<'/';
			}
			cout <<endl;
			cout <<"当前目录为文件夹目录"<<endl;
		}
		if (MyText.Lies!=1)
		{
			for (int i =1;i<=MyFile.FileRow;i++)
			{
				cout<<MyFile.FileName[MyFile.FileLie][i]<<'/';
			}
			cout <<MyText.TextName[MyText.Lies][MyFile.FileRow];
			cout <<endl;
			cout <<"当前目录为文本目录"<<endl;
		}
	}
	//if ((YoN=='N')||(YoN=='n'))
	//{
	//	cout << "以下将加载文件系统"<<endl;
	//}
	cout << "FileSystem:\\>";
	//Files MyFile;
	//vector<string>::iterator   Pos;
	//string Commands;
	//string MainFile = "MainDiractory";
	cin >> Commands;
	while (Commands!="-Exit")
	{
		if (Commands=="-CreFile")
		{
			CreateFile();			
			MyFile.ChangeDir = 1;
		}
		if (Commands=="-CreSFile")
		{
			if (MyFile.FileRow==1)
			{
				cout <<"请先使用-CreFile命令创建文件"<<endl;
				cout <<"FileSystem:\\>";
				cin>>Commands;
			}
			else
			{
				CreSFile();	
				MyFile.ChangeDir = 1;
			}
		}
		if (Commands=="-DelFile")
		{
			DeleteFile();
		}
		//if (Commands=="-DelText")
		//{
		//	DeleteText();
		//}
		if (Commands=="-CreText")
		{
			CreateText();
			MyFile.TextAmount++;
			TextConfig=MyFile.TextAmount;
			MyFile.ChangeDir = 2;
		}
		if (Commands=="-ChaDir")
		{
			if (MyFile.ChangeDir==1)
			{
				MyFile.FileRow--;
			}
			if (MyFile.ChangeDir==2)
			{
				MyFile.ChangeDir=1;
			}
			ChangeDir();
		}
		if (Commands=="-ShowDir")
		{
			if (MyFile.ChangeDir==1)
			{
				cout << "当前目录下文件为:"<<endl;
				cout << "文件夹: ";
				for (int m=1;m<=MyFile.FileLie;m++)
				{
					cout<<MyFile.FileName[m][MyFile.FileRow]<<" ";
				}
				cout <<endl;
				cout << "文本文件: ";
				for (int m=1;m<=MyText.Lies;m++)
				{
					cout<<MyText.TextName[m][MyFile.FileRow]<<" ";
				}
				cout <<endl;
			}
			else
			{
				cout << "当前所在位置为文本,没有子目录,查询文本内容请输入命令'-SFCont'"<<endl;
			}
			cout <<"FileSystem:\\>";
			cin>>Commands;

		}
		if (Commands=="-Help")
		{
			Helps();
		}
		if (Commands=="-SFCont")
		{
			//if ((MyFile.TextAmount==0)||(TextConfig!=MyFile.TextAmount))
			//{
			//	cout <<"没有可显示的文档";
			//}
			//if ((MyFile.TextAmount==0)||MyText.Contents[MyFile.FileLie][MyFile.FileRow]==0)
			//{
			//	cout <<"没有可显示的文档";
			//}
			if (MyFile.TextAmount==0)
			{
				cout <<"没有可显示的文档";
			}
			else
			{
				/*cout <<"最近文本"<<MyFile.CurrentDir<<" 内容是:"<<endl;*/
				int g=1;
				for (int m=1;m<=MyText.Lies;m++)
				{
					cout <<"文本"<<MyText.TextName[m][MyFile.FileRow]<<"内容是:"<<endl;
					for (Pos[g]=MyText.FileContents[m][MyFile.FileRow].begin();Pos[g]!=MyText.FileContents[m][MyFile.FileRow].end();Pos[g]++)
					{
						cout <<*Pos[g]<<" ";
					}
					g++;
					cout <<endl;
				}

			}
			cout << endl<<"FileSystem:\\>";
			cin>>Commands;
		}
		if (Commands=="-Save")
		{
			ofstream SetFileSys("c:\\MyFile.txt");
			//SetFileSys<<Commands<<endl;
			SetFileSys<<MyText.Lies<<endl;
			SetFileSys<<MyFile.FileRow<<endl;
			SetFileSys<<MyFile.FileLie<<endl;
			SetFileSys<<MyFile.TextAmount<<endl;
			for (int m=1;m<=MyFile.FileLie;m++)
			{
				for (int n=1;n<=MyFile.FileRow;n++)
				{
					SetFileSys<<MyFile.FileName[m][n]<<endl;
				}
			}
			for (int m=1;m<=MyText.Lies;m++)
			{
				for (int n=1;n<=MyFile.FileRow;n++)
				{
					SetFileSys<<MyText.TextName[m][n]<<endl;
				}
			}
			for (int m=1;m<=MyText.Lies;m++)
			{
				int g =1;
				for (Pos[g]=MyText.FileContents[m][MyFile.FileRow].begin();Pos[g]!=MyText.FileContents[m][MyFile.FileRow].end();Pos[g]++)
				{
					SetFileSys <<*Pos[g];
				}
			}
			SetFileSys<<endl;
			cout <<"文件保存完毕"<<endl;
			break;
		}
		else if((Commands!="-Save")&&(Commands!="-ShowDir")&&(Commands!="-CreSFile")&&(Commands!="-ChaDir")&&(Commands!="-SFCont")&&(Commands!="-Exit")&&(Commands!="-Help")&&(Commands!="-CreFile")&&(Commands!="-DelFile")&&(Commands!="-CreText"))
		{
			cout << "没有此项命令,请输入-Help查询命令"<<endl;
			cout << "FileSystem:\\>";
			cin>>Commands;
		}
	}
	//for (Pos=MyFile.FileContents[MyFile.TextAmount-1].begin();Pos!=MyFile.FileContents[MyFile.TextAmount-1].end();Pos++)
	//{
	//	cout <<*Pos<<" ";
	//}

	//else
	//{
	//	cout <<"你已经退出了文件管理系统的编辑,请重新运行应用程序"<<endl;
	//}
	return 0;
}

⌨️ 快捷键说明

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