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

📄 main.cs

📁 文件系统管理 在内存中为文件开辟存储空间 可以创建文件和文件夹 (至少有两级目录 :模拟DOS文件系统的操作 可以存储文件的内容 可以查看删除和修改文件(15 2
💻 CS
字号:
using System;
using System.IO;

namespace FSM
{
	/// <summary>
	/// Class1 的摘要说明。
	/// </summary>
	class main
	{
		/// <summary>
		/// 应用程序的主入口点。
		/// </summary>
		[ STAThread]
		static void Main()
		{
			Console.Write(@"模拟 DOS 文件管理系统 V1.0  Powered by Microsot.net");
			Console.WriteLine("");
			cFile f = new cFile();
			cDirectory d = new cDirectory();

			Console.WriteLine("\n系统可用命令如下:\n");
			Console.Write( "设置权限:\tattrib \t[ 文件名(不含空格)] [  -h | -r | -s | +h | +r | +s ]\n");
			Console.Write( "改变目录:\tcd \t[ \\|..|文件目录(不含空格)]\n");
			Console.Write( "创建文件:\tcf \t[ 文件名(不含空格)]\n");
			Console.Write( "复制文件:\tcopy \t[ 源文件(不含空格)] [ 目标文件(不含空格)]\n");
			Console.Write( "删除文件:\tdel \t[ 文件名(不含空格)]\n");
			Console.Write( "删除目录:\tdeltree [ 目录名(不含空格)]\n");
			Console.Write( "查看文件列表:\tdir \t[  |目录名(不含空格)] \n");
			Console.Write( "编辑文件:\tedit \t[ 文件名(不含空格)]\n");
			Console.Write( "退出系统:\texit \n");
			Console.Write( "创建目录:\tmd \t[ 目录名(不含空格)]\n");
			Console.Write( "移动文件:\tmov \t[ 源文件名(不含空格)] [ 目标文件名(不含空格)]\n");
			Console.Write( "移动目录:\tmovd \t[ 源目录名(不含空格)] [ 目标目录名(不含空格)]\n");
			Console.Write( "删除目录:\trd \t[ 目录名(不含空格)]\n");
			Console.Write( "文件改名:\tren \t[ 原文件名(不含空格)] [ 新文件名(不含空格)]\n");
			Console.Write( "运行程序:\trun \t[ 文件名(不含空格)]\n");
			Console.Write( "查看文件:\ttype \t[ 文件名(不含空格)]\n");
			Console.Write( "复制目录:\txcopy \t[ 源目录(不含空格)] [ 目标目录(不含空格)]\n\n");			
			Console.WriteLine("版权所有:张镭、王松乔, 重庆大学计算机学院 2000 级 3 班\n");
			while( true )
			{
				string curdir = Directory.GetCurrentDirectory();
				int argscount = 0;
				Console.Write( curdir + ">");
				System.Collections.ArrayList args = new System.Collections.ArrayList();
				args.Add("");
				char[ ] trim = new char[ ]{' '};
                DirectoryInfo di;

				char[ ] cmd = Console.ReadLine().TrimStart(trim).ToCharArray();
				for( int i = 0; i < cmd.Length; i++ )
				{
					if( cmd[ i] != ' ')
					{
						args[ argscount] = String.Concat( args[ argscount],cmd[ i]);
					}
					if( (i+1) <= (cmd.Length -1) )
					{
						if( cmd[ i] == ' ' & cmd[ i+1] != ' ' )
						{
							argscount ++;		
							args.Add("");
						}
					}
				}
				switch( args[ 0].ToString().Trim().ToLower() )
				{
					case "help"://改变当前目录
					{
						Console.WriteLine("\n系统可用命令如下:\n");
						Console.Write( "设置权限:\tattrib \t[ 文件名(不含空格)] [  -h | -r | -s | +h | +r | +s ]\n");
						Console.Write( "改变目录:\tcd \t[ \\|..|文件目录(不含空格)]\n");
						Console.Write( "创建文件:\tcf \t[ 文件名(不含空格)]\n");
						Console.Write( "复制文件:\tcopy \t[ 源文件(不含空格)] [ 目标文件(不含空格)]\n");
						Console.Write( "删除文件:\tdel \t[ 文件名(不含空格)]\n");
						Console.Write( "删除目录:\tdeltree [ 目录名(不含空格)]\n");
						Console.Write( "查看文件列表:\tdir \t[  |目录名(不含空格)] \n");
						Console.Write( "编辑文件:\tedit \t[ 文件名(不含空格)]\n");
						Console.Write( "退出系统:\texit \n");
						Console.Write( "创建目录:\tmd \t[ 目录名(不含空格)]\n");
						Console.Write( "移动文件:\tmov \t[ 源文件名(不含空格)] [ 目标文件名(不含空格)]\n");
						Console.Write( "移动目录:\tmovd \t[ 源目录名(不含空格)] [ 目标目录名(不含空格)]\n");
						Console.Write( "删除目录:\trd \t[ 目录名(不含空格)]\n");
						Console.Write( "文件改名:\tren \t[ 原文件名(不含空格)] [ 新文件名(不含空格)]\n");
						Console.Write( "运行程序:\trun \t[ 文件名(不含空格)]\n");
						Console.Write( "查看文件:\ttype \t[ 文件名(不含空格)]\n");
						Console.Write( "复制目录:\txcopy \t[ 源目录(不含空格)] [ 目标目录(不含空格)]\n\n");			
						Console.WriteLine("版权所有:张镭、王松乔, 重庆大学计算机学院 2000 级 3 班\n");
						break;
					}
					case "/?"://改变当前目录
					{
						Console.WriteLine("\n系统可用命令如下:\n");
						Console.Write( "设置权限:\tattrib \t[ 文件名(不含空格)] [  -h | -r | -s | +h | +r | +s ]\n");
						Console.Write( "改变目录:\tcd \t[ \\|..|文件目录(不含空格)]\n");
						Console.Write( "创建文件:\tcf \t[ 文件名(不含空格)]\n");
						Console.Write( "复制文件:\tcopy \t[ 源文件(不含空格)] [ 目标文件(不含空格)]\n");
						Console.Write( "删除文件:\tdel \t[ 文件名(不含空格)]\n");
						Console.Write( "删除目录:\tdeltree [ 目录名(不含空格)]\n");
						Console.Write( "查看文件列表:\tdir \t[  |目录名(不含空格)] \n");
						Console.Write( "编辑文件:\tedit \t[ 文件名(不含空格)]\n");
						Console.Write( "退出系统:\texit \n");
						Console.Write( "创建目录:\tmd \t[ 目录名(不含空格)]\n");
						Console.Write( "移动文件:\tmov \t[ 源文件名(不含空格)] [ 目标文件名(不含空格)]\n");
						Console.Write( "移动目录:\tmovd \t[ 源目录名(不含空格)] [ 目标目录名(不含空格)]\n");
						Console.Write( "删除目录:\trd \t[ 目录名(不含空格)]\n");
						Console.Write( "文件改名:\tren \t[ 原文件名(不含空格)] [ 新文件名(不含空格)]\n");
						Console.Write( "运行程序:\trun \t[ 文件名(不含空格)]\n");
						Console.Write( "查看文件:\ttype \t[ 文件名(不含空格)]\n");
						Console.Write( "复制目录:\txcopy \t[ 源目录(不含空格)] [ 目标目录(不含空格)]\n\n");			
						Console.WriteLine("版权所有:张镭、王松乔, 重庆大学计算机学院 2000 级 3 班\n");
						break;
					}
					case "cd"://改变当前目录
					{
						if( args.Count != 2 )
						{
							Console.Write( @"命令格式: cd [ \|..|文件目录(不含空格)]\n\n");
							break;
						}
						if( Directory.Exists(args[ 1].ToString()) )
						{
							Directory.SetCurrentDirectory(args[ 1].ToString());						
						}
						else
						{
							Console.Write( "目录'" + args[ 1] + "'不存在\n");
						}
						break;
					}
					case "cd.."://上一目录
					{
						if( args.Count != 1 )
						{
							Console.Write( @"命令格式: cd [ \|..|文件目录(不含空格)]\n\n");
							break;
						}	
						if( Directory.GetParent( Directory.GetCurrentDirectory()) != null )
						{
							string pardir = Directory.GetParent( Directory.GetCurrentDirectory()).FullName; 
							Directory.SetCurrentDirectory(pardir);								
						}
						break;
					}
					case @"cd\"://根目录
					{
						if( args.Count != 1 )
						{
							Console.Write( @"命令格式: cd [ \|..|文件目录(不含空格)]\n\n");
							break;
						}	
						di = new DirectoryInfo(Directory.GetCurrentDirectory());
						Directory.SetCurrentDirectory(di.Root.FullName);						
						break;
					}
					case "copy"://拷贝文件
					{
						if( args.Count != 3 )
						{
							Console.Write( "命令格式:copy [ 源文件(不含空格)] [ 目标文件(不含空格)]\n\n");
							break;
						}
						f.Copy( args[ 1].ToString(), args[ 2].ToString() );						
						break;
					}
					case "del"://删除文件
					{
						if( args.Count != 2 )
						{
							Console.Write( "命令格式:del [ 文件名(不含空格)]\n\n");
							break;
						}
						f.Delete( args[ 1].ToString());						
						break;
					}
					case "cf"://创建文件
					{
						if( args.Count != 2 )
						{
							Console.Write( "命令格式:cf [ 文件名(不含空格)]\n\n");
							break;
						}
						f.Create( args[ 1].ToString());						
						break;
					}
					case "deltree"://删除目录树
					{
						if( args.Count != 2 )
						{
							Console.Write( "命令格式:deltree [ 目录名(不含空格)]\n\n");
							break;
						}
						d.Delete( args[ 1].ToString());						
						break;
					}
					case "dir"://列文件名
					{
						if( args.Count > 2 )
						{
							Console.Write( "命令格式:dir | [ 目录名(不含空格)] \n\n");
							break;
						}
						if( args.Count == 1 )
						{
							d.List( Directory.GetCurrentDirectory() );
						}
						else if( args.Count == 2)
						{
							d.List( args[ 1].ToString() );
						}
						break;
					}
					case "edit"://文本编辑
					{
						if( args.Count != 2 )
						{
							Console.Write( "命令格式:edit [ 文件名(不含空格)]\n\n");
							break;
						}
						f.Edit( args[ 1].ToString());						
						break;
					}
					case "md"://建立子目录
					{
						if( args.Count != 2 )
						{
							Console.Write( "命令格式:md [ 目录名(不含空格)]\n\n");
							break;
						}
						d.Create( args[ 1].ToString());						
						break;
					}
					case "mov"://移动文件
					{
						if( args.Count != 3 )
						{
							Console.Write( "命令格式:mov [ 源文件名(不含空格)] [ 目标文件名(不含空格)]\n\n");
							break;
						}
						f.Move( args[ 1].ToString(), args[ 2].ToString() ) ;	
						break;
					}
					case "movd"://移动目录
					{
						if( args.Count != 3 )
						{
							Console.Write( "命令格式:movd [ 源目录名(不含空格)] [ 目标目录名(不含空格)]\n\n");
							break;
						}
						d.Move( args[ 1].ToString(), args[ 2].ToString() ) ;	
						break;
					}
					case "rd"://删除目录
					{
						if( args.Count != 2 )
						{
							Console.Write( "命令格式:rd [ 目录名(不含空格)]\n\n");
							break;
						}
						d.Delete( args[ 1].ToString());						
						break;
					}
					case "ren"://改变文件名
					{
						if( args.Count != 3 )
						{
							Console.Write( "命令格式:ren [ 原文件名(不含空格)] [ 新文件名(不含空格)]\n\n");
							break;
						}
						f.ReName( args[ 1].ToString(), args[ 2].ToString() ) ;	
						break;
					}
					case "type"://显示文件内容
					{
						if( args.Count != 2 )
						{
							Console.Write( "命令格式:type [ 文件名(不含空格)]\n\n");
							break;
						}
						f.Type( args[ 1].ToString());						
						break;
					}
					case "xcopy"://拷贝目录与文件
					{
						if( args.Count != 3 )
						{
							Console.Write( "命令格式:xcopy [ 源目录(不含空格)] [ 目标目录(不含空格)]\n\n");
							break;
						}
						d.Copy( args[ 1].ToString(), args[ 2].ToString() );						
						break;
					}
					case "attrib"://设置文件属性
					{
						if( args.Count <= 2 )
						{
							Console.Write( "命令格式:attrib [ 文件名(不含空格)] [  -h | -r | -s | +h | +r | +s ]\n\n");
							break;
						}
						args.RemoveAt(0);
						args.TrimToSize();
						string[ ] strargs = new string[ args.Count-1];
						for( int i = 0; i < strargs.Length; i ++ )
						{							
							strargs[ i] = args[ i+1].ToString();
						}
						f.SetAttribute( args[ 0].ToString(), strargs);						
						break;
					}
					case "run"://运行程序
					{
						if( args.Count != 2 )
						{
							Console.Write( "命令格式:run [ 文件名(不含空格)]\n\n");
							break;
						}
						f.Run( args[ 1].ToString());						
						break;
					}
					case "exit"://退出程序
					{
						return;
					}
					default:
					{
						Console.WriteLine("\n系统可用命令如下:\n");
						Console.Write( "设置权限:\tattrib \t[ 文件名(不含空格)] [  -h | -r | -s | +h | +r | +s ]\n");
						Console.Write( "改变目录:\tcd \t[ \\|..|文件目录(不含空格)]\n");
						Console.Write( "创建文件:\tcf \t[ 文件名(不含空格)]\n");
						Console.Write( "复制文件:\tcopy \t[ 源文件(不含空格)] [ 目标文件(不含空格)]\n");
						Console.Write( "删除文件:\tdel \t[ 文件名(不含空格)]\n");
						Console.Write( "删除目录:\tdeltree [ 目录名(不含空格)]\n");
						Console.Write( "查看文件列表:\tdir \t[  |目录名(不含空格)] \n");
						Console.Write( "编辑文件:\tedit \t[ 文件名(不含空格)]\n");
						Console.Write( "退出系统:\texit \n");
						Console.Write( "创建目录:\tmd \t[ 目录名(不含空格)]\n");
						Console.Write( "移动文件:\tmov \t[ 源文件名(不含空格)] [ 目标文件名(不含空格)]\n");
						Console.Write( "移动目录:\tmovd \t[ 源目录名(不含空格)] [ 目标目录名(不含空格)]\n");
						Console.Write( "删除目录:\trd \t[ 目录名(不含空格)]\n");
						Console.Write( "文件改名:\tren \t[ 原文件名(不含空格)] [ 新文件名(不含空格)]\n");
						Console.Write( "运行程序:\trun \t[ 文件名(不含空格)]\n");
						Console.Write( "查看文件:\ttype \t[ 文件名(不含空格)]\n");
						Console.Write( "复制目录:\txcopy \t[ 源目录(不含空格)] [ 目标目录(不含空格)]\n\n");			
						Console.WriteLine("版权所有:张镭、王松乔, 重庆大学计算机学院 2000 级 3 班\n");
						Console.WriteLine("错误的命令.");
						break;
					}
				}
				Console.Write( "\n");
			}
		}
	}
}

⌨️ 快捷键说明

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