操作系统文件管理实验报告要点
- 格式:doc
- 大小:98.00 KB
- 文档页数:12
一、实验目的本次实验旨在通过设计和实现一个简单的文件管理系统,加深对文件管理原理的理解,掌握文件系统的基本操作,包括文件的创建、删除、修改、查询等,并了解文件系统的目录结构和管理机制。
二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C++4. 实验时间:2023年10月25日三、实验内容1. 文件系统的目录结构设计2. 文件的基本操作实现3. 文件系统的存储管理4. 文件系统的安全机制四、实验步骤1. 目录结构设计根据文件系统的需求,设计以下目录结构:```根目录│├── 文件夹A│ ├── 文件1.txt│ └── 文件2.txt│├── 文件夹B│ └── 文件3.txt│└── 文件夹C```2. 文件的基本操作实现(1)文件创建```cppvoid CreateFile(const std::string& filePath, const std::string& content) {// 检查文件是否存在if (CheckFileExist(filePath)) {std::cout << "文件已存在!" << std::endl;return;}// 创建文件std::ofstream file(filePath);if (file.is_open()) {file << content;file.close();std::cout << "文件创建成功!" << std::endl;} else {std::cout << "文件创建失败!" << std::endl;}}```(2)文件删除```cppvoid DeleteFile(const std::string& filePath) {// 检查文件是否存在if (!CheckFileExist(filePath)) {std::cout << "文件不存在!" << std::endl;return;}// 删除文件if (remove(filePath) == 0) {std::cout << "文件删除成功!" << std::endl;} else {std::cout << "文件删除失败!" << std::endl;}}```(3)文件修改```cppvoid ModifyFile(const std::string& filePath, const std::string& newContent) {// 检查文件是否存在if (!CheckFileExist(filePath)) {std::cout << "文件不存在!" << std::endl; return;}// 修改文件内容std::ofstream file(filePath, std::ios::trunc); if (file.is_open()) {file << newContent;file.close();std::cout << "文件修改成功!" << std::endl; } else {std::cout << "文件修改失败!" << std::endl; }}```(4)文件查询```cppvoid QueryFile(const std::string& filePath) {// 检查文件是否存在if (!CheckFileExist(filePath)) {std::cout << "文件不存在!" << std::endl; return;}// 读取文件内容std::ifstream file(filePath);if (file.is_open()) {std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());std::cout << "文件内容:" << content << std::endl;file.close();} else {std::cout << "文件读取失败!" << std::endl;}}```3. 文件系统的存储管理文件系统采用磁盘文件作为存储介质,通过文件操作实现对文件的读写。
操作系统文件管理实验报告操作系统文件管理实验报告一、实验目的操作系统是计算机系统中的核心软件之一,负责管理计算机硬件资源和提供用户与计算机硬件之间的接口。
文件管理是操作系统的重要功能之一,它涉及到文件的创建、读取、写入、删除等操作。
本次实验旨在通过编写简单的文件管理程序,加深对操作系统文件管理机制的理解。
二、实验环境本次实验使用C语言编写,运行在Linux操作系统上。
实验过程中使用了gcc 编译器和Linux系统提供的文件管理函数。
三、实验内容1. 文件的创建在操作系统中,文件是存储在存储介质上的数据集合。
文件的创建是指在存储介质上分配一块空间,并为其分配一个唯一的文件名。
在本次实验中,我们使用了Linux系统提供的open函数来创建文件。
open函数接受两个参数,第一个参数是文件名,第二个参数是文件的打开模式。
通过调用open函数,我们可以在指定的路径下创建一个文件。
2. 文件的读取和写入文件的读取和写入是文件管理的核心操作。
在本次实验中,我们使用了Linux 系统提供的read和write函数来实现文件的读取和写入。
read函数接受三个参数,第一个参数是文件描述符,第二个参数是存储读取数据的缓冲区,第三个参数是要读取的数据的长度。
write函数也接受三个参数,第一个参数是文件描述符,第二个参数是要写入的数据的缓冲区,第三个参数是要写入的数据的长度。
通过调用read和write函数,我们可以实现对文件的读取和写入操作。
3. 文件的删除文件的删除是指在存储介质上释放文件占用的空间,并删除文件的相关信息。
在本次实验中,我们使用了Linux系统提供的unlink函数来删除文件。
unlink函数接受一个参数,即要删除的文件名。
通过调用unlink函数,我们可以删除指定的文件。
四、实验步骤1. 创建文件首先,我们使用open函数创建一个文件。
在调用open函数时,需要指定文件的路径和文件的打开模式。
文件的路径可以是绝对路径或相对路径,文件的打开模式可以是只读、只写、读写等。
操作系统文件管理实验报告电大教师评语教师签字日期成绩学生姓名学号实验名称操作系统文件管理实验实验报告一、实验目的1、加深对文件、目录、文件系统等概念的理角2、掌握 Llnu_ 文件系统的目录结构3、掌握有关 Llnu_ 文件系统操作的常用命令4、了解有关文件案例性方面的知识二、实验要求:1、正确使用文件管理命令,能熟练地对文件进行浏览、拷贝、移动和删除。
2、能熟练地确定和更改工作目录,查看内容和文件属性,创建和删除目录。
3、正确地理解文件的权限,并能进行相应更改。
4、理解文件的类型及其表示形式。
5、理解文件名的表示形式,在模式匹配中能正确使用通配符。
三、实验步骤( 一) 浏览文件系统 1、运行 pwd 命令。
确定当前的工作目录。
2、文件列表。
使用 ls 命令显示当前工作目录的内容。
使用 ls-l 命令显示文件列表,对照屏幕上的显示信息,理解各字段的含义。
使用 ls-ai 命令显示文件列表,观察显示的信息。
注意列出的前两项,它们分别表示当前目录和父目录。
看一下,是否还有其他隐藏的文件? 运行不带-a 选项的 ls 命令。
注意,文件的 I 节点号不再出现。
运行不带-i 选项的 ls 命令,注意,怎么不再显示隐藏文件了。
3、目录操作。
使用 mkdir 命令建立一个子目录。
执行带 ls-d 命令,观察有关子目录的信息。
执行 cd/命令,将工作目录改到根目录(/)上。
使用绝对路径和相对路径两种方式,并执行 pwd 命令确认当前工作目录。
执行 ls/命令列出根目录的内容,再分别列出各子目录的内容。
体会各子目录的作用以及访问权限。
执行 ls-l /dev 命令列出/dev 的内容,注意各行第一个字符 b 和c 的含义以及规定的访问权限。
执行不带参数的命令 cd,然后用 pwd 命令确认当前的工作目录是什么。
执行命令 cd../...工作目录移到什么地方了? ( 二) 查看文件执行 cd 命令,将工作目录改到主目录上。
文件管理实验报告一、实验目的本次文件管理实验旨在深入了解和掌握文件管理的基本原理和操作方法,提高对文件系统的认识和运用能力,培养良好的文件管理习惯,以提高工作和学习的效率。
二、实验环境操作系统:Windows 10应用软件:资源管理器三、实验内容及步骤(一)文件的创建与命名1、打开资源管理器,选择合适的存储位置(如桌面、D 盘等)。
2、右键单击空白处,选择“新建”,然后根据需要创建文本文档、Word 文档、Excel 表格等不同类型的文件。
3、为创建的文件进行合理的命名,遵循简洁、清晰、有意义的原则,避免使用模糊、无意义或过长的文件名。
(二)文件的复制、移动与删除1、复制文件选中要复制的文件,按下Ctrl +C 组合键或右键单击选择“复制”。
导航到目标位置,按下 Ctrl + V 组合键或右键单击选择“粘贴”。
2、移动文件选中要移动的文件,按下Ctrl +X 组合键或右键单击选择“剪切”。
导航到目标位置,按下 Ctrl + V 组合键或右键单击选择“粘贴”。
3、删除文件选中要删除的文件,按下 Delete 键或右键单击选择“删除”。
在弹出的确认对话框中,选择“是”确认删除。
(三)文件的搜索与查找1、利用资源管理器的搜索功能,在搜索框中输入文件名、关键词或文件类型等信息,快速找到所需文件。
2、学会使用高级搜索选项,如指定搜索范围、修改时间、文件大小等条件,进一步精确搜索结果。
(四)文件的分类与整理1、根据文件的类型(如文档、图片、音频、视频等)、用途(工作、学习、娱乐等)或项目等进行分类。
2、创建不同的文件夹来存放各类文件,并为文件夹进行清晰的命名。
3、将相关文件移动到对应的文件夹中,保持文件系统的整洁和有序。
(五)文件的备份与恢复1、选择重要的文件或文件夹,将其复制到外部存储设备(如 U 盘、移动硬盘)或云存储服务(如百度网盘、OneDrive)中进行备份。
2、模拟文件丢失或损坏的情况,从备份中恢复文件,验证备份的有效性。
文件管理实验报告一、实验目的本次文件管理实验的主要目的是深入了解和掌握文件管理的基本原理和操作方法,通过实际操作和观察,提高对文件系统的认识和运用能力,培养良好的文件管理习惯,以提高工作和学习的效率。
二、实验环境本次实验使用的操作系统为 Windows 10,使用的工具包括资源管理器、命令提示符等。
三、实验内容与步骤(一)文件和文件夹的创建与命名1、打开资源管理器,选择合适的磁盘分区和文件夹。
2、右键单击空白处,选择“新建”,然后分别创建文本文件、Word 文档、文件夹等。
3、为创建的文件和文件夹进行合理的命名,遵循清晰、简洁、有意义的原则,例如“学习资料_数学”“工作周报_202309”等。
(二)文件和文件夹的复制、移动与删除1、选中要操作的文件或文件夹,可以使用鼠标左键单击或按住Ctrl 键进行多选。
2、对于复制操作,右键单击选中的对象,选择“复制”,然后在目标位置右键单击选择“粘贴”。
3、移动操作类似,只是选择“剪切”而不是“复制”。
4、删除文件或文件夹时,选中对象后按下 Delete 键,或者右键单击选择“删除”。
需要注意的是,删除操作是不可逆的,对于重要文件要谨慎操作。
(三)文件和文件夹的属性设置1、右键单击文件或文件夹,选择“属性”。
2、在属性对话框中,可以设置文件的只读、隐藏等属性。
3、了解文件的大小、创建时间、修改时间等信息。
(四)文件的搜索与查找1、在资源管理器的搜索框中输入关键词,如文件名、文件内容中的部分文字等。
2、可以设置搜索范围、搜索条件等,以更精确地找到所需文件。
(五)文件的压缩与解压缩1、选择要压缩的文件或文件夹,右键单击选择“添加到压缩文件”。
2、可以设置压缩格式、压缩级别等参数。
3、对于压缩文件,右键单击选择“解压到当前文件夹”或“解压到指定文件夹”进行解压缩操作。
四、实验中遇到的问题及解决方法(一)问题 1:误删除重要文件在进行删除操作时,不小心删除了一个包含重要数据的文件夹。
文件管理实验报告一、实验目的文件管理是操作系统的重要组成部分,本次实验的目的在于深入理解文件管理的基本概念和原理,掌握文件的存储、组织、检索和访问等操作,熟悉常见的文件系统结构和功能,提高对文件管理系统的实际操作能力和问题解决能力。
二、实验环境1、操作系统:Windows 102、开发工具:Microsoft Visual Studio 2019三、实验内容1、文件的创建、删除和重命名使用 C++或 Python 编程语言,通过系统调用或相关库函数实现文件的创建、删除和重命名操作。
观察文件在操作系统中的实际表现,如文件的出现和消失,文件名的更改等。
2、文件的读写操作实现对文本文件和二进制文件的读写操作,包括读取文件的全部内容、按行读取文件、向文件写入数据等。
分析不同读写模式(如只读、只写、读写等)对文件操作的影响。
3、文件属性的获取和修改获取文件的基本属性,如文件大小、创建时间、修改时间、访问权限等。
尝试修改文件的部分属性,如只读属性、隐藏属性等,观察修改后的效果。
4、文件目录的操作创建、删除和遍历目录。
实现文件在不同目录之间的移动和复制操作。
四、实验步骤1、文件的创建、删除和重命名以下是使用 Python 实现文件创建、删除和重命名的示例代码:```pythonimport os创建文件file_path ="exampletxt"with open(file_path, 'w') as f:fwrite("This is a test file")删除文件osremove(file_path)重命名文件new_file_path ="renamed_exampletxt"osrename(file_path, new_file_path)```运行代码后,可以在指定的目录中观察到文件的创建、删除和重命名操作的结果。
2、文件的读写操作读取文本文件的示例代码:```pythonfile_path ="text_filetxt"with open(file_path, 'r') as f:content = fread()print(content)```按行读取文本文件的示例代码:```pythonfile_path ="text_filetxt"with open(file_path, 'r') as f:for line in f:print(linestrip())```写入数据到文件的示例代码:```pythonfile_path ="outputtxt"with open(file_path, 'w') as f:fwrite("New data written to file")```分别运行上述代码,观察文件的读写结果。
一、实验目的1. 理解文件管理的概念和基本原理。
2. 掌握文件系统的结构及其组成。
3. 学会使用文件管理系统进行文件操作。
4. 了解文件系统的性能优化方法。
二、实验环境1. 操作系统:Windows 102. 文件管理系统:Windows Explorer3. 实验工具:文本编辑器(如Notepad)三、实验内容1. 文件系统的基本概念2. 文件系统的结构3. 文件操作4. 文件系统性能优化四、实验步骤1. 文件系统的基本概念(1)打开Windows Explorer,观察文件系统的组织结构。
(2)分析文件系统的组成,包括文件、目录、驱动器等。
(3)了解文件名、扩展名、路径等基本概念。
2. 文件系统的结构(1)创建一个新文件夹,命名为“实验文件夹”。
(2)在“实验文件夹”中创建一个文本文件,命名为“实验报告.txt”。
(3)观察文件系统的树状结构,理解目录与文件之间的关系。
3. 文件操作(1)打开“实验报告.txt”,使用文本编辑器进行编辑。
(2)保存并关闭编辑器。
(3)将“实验报告.txt”复制到“实验文件夹”的子目录中。
(4)删除“实验文件夹”中的“实验报告.txt”。
(5)重命名“实验文件夹”中的子目录。
4. 文件系统性能优化(1)查看磁盘属性,了解磁盘空间占用情况。
(2)对磁盘进行碎片整理。
(3)使用磁盘清理工具清理磁盘中的临时文件。
五、实验结果与分析1. 文件系统的基本概念通过实验,我们了解了文件系统的基本概念,包括文件、目录、驱动器等。
文件系统是操作系统管理文件的一种数据结构,用于存储、检索、更新和删除文件。
2. 文件系统的结构实验中,我们创建了文件夹和文件,并观察了文件系统的树状结构。
文件系统采用分层结构,目录与文件之间通过路径连接。
3. 文件操作实验中,我们进行了文件操作,包括创建、编辑、复制、删除和重命名。
这些操作是文件管理的基本技能。
4. 文件系统性能优化通过磁盘碎片整理和清理磁盘中的临时文件,我们提高了文件系统的性能。
操作系统文件管理实验报告操作系统文件管理实验报告1:引言本实验报告旨在详细描述操作系统文件管理实验的设计、实施和结果。
文件管理是操作系统的重要组成部分,负责对计算机中的文件进行组织、存储和访问。
本实验通过模拟文件管理的过程,加深对文件管理的理解和实践。
2:实验目的本实验的主要目的是:- 理解文件系统的概念和原理- 掌握文件的创建、读取、写入和删除等基本操作- 实施并测试文件的分配和回收算法- 评估不同的文件分配算法对系统性能的影响3:实验环境本实验的实施环境如下:- 操作系统:Windows 10- 开发环境:C++ 编程语言4:实验内容4.1 文件系统设计在文件系统设计中,首先确定文件的基本单位,例如块或扇区。
然后,定义文件控制块(FCB)结构,用于存储文件的元数据信息,如文件名、大小、创建时间、权限等。
接下来,设计文件分配表,记录系统中每个块的使用情况,用于实现文件的分配和回收。
4.2 文件的创建和删除在文件的创建过程中,首先为文件分配空间,并更新文件分配表。
然后,创建文件的FCB,并将其到目录项中。
在文件的删除过程中,首先释放文件的空间,并更新文件分配表。
然后,删除文件的FCB,并从目录项中移除。
4.3 文件的读写操作文件的读写操作是用户对文件进行读取和修改的过程。
在文件读取操作中,首先找到要读取的文件的FCB,获取文件的起始块地址,并从起始块中读取数据。
在文件写入操作中,首先找到要写入的文件的FCB,获取文件的起始块地址,并将数据写入起始块。
若文件大小超过起始块的容量,则按照一定的分配算法继续分配空间。
4.4 文件分配算法文件分配算法决定了操作系统如何管理文件的空间分配。
常用的文件分配算法包括顺序分配、分配和索引分配。
顺序分配将文件连续地存储在磁盘上,易于实现但可能产生外部碎片。
分配使用链表结构将文件存储在磁盘的不连续块中,不易产生外部碎片但可能引起存取时间增长。
索引分配使用索引表将文件存储在磁盘的不连续块中,不易产生外部碎片且存取时间相对较短,但索引表本身需要占用存储空间。
第1篇一、实验目的1. 理解文件管理的概念和作用。
2. 掌握文件系统的基本操作,如创建、删除、复制、移动等。
3. 学会使用文件管理工具,提高文件管理效率。
二、实验环境1. 操作系统:Windows 102. 文件管理工具:Windows资源管理器3. 实验设备:计算机三、实验内容1. 文件系统的基本概念文件系统是操作系统用来组织和管理文件的一种机制。
它主要包括以下内容:(1)文件:数据的基本单位,可以存储信息、程序等。
(2)目录:文件系统的组织单位,用于存放文件和子目录。
(3)路径:文件在文件系统中的位置,由目录名和文件名组成。
2. 文件系统的基本操作(1)创建文件:在指定目录下创建一个新的文件。
操作步骤:1)打开Windows资源管理器;2)找到要创建文件的目录;3)右键单击空白区域,选择“新建”;4)选择文件类型,如文本文档、Word文档等;5)输入文件名,点击“确定”。
(2)删除文件:删除指定的文件。
操作步骤:1)打开Windows资源管理器;2)找到要删除的文件;3)右键单击文件,选择“删除”;4)在弹出的确认对话框中点击“是”。
(3)复制文件:将文件从一个目录复制到另一个目录。
操作步骤:1)打开Windows资源管理器;2)找到要复制的文件;3)右键单击文件,选择“复制”;4)打开目标目录,右键单击空白区域,选择“粘贴”。
(4)移动文件:将文件从一个目录移动到另一个目录。
操作步骤:1)打开Windows资源管理器;2)找到要移动的文件;3)右键单击文件,选择“剪切”;4)打开目标目录,右键单击空白区域,选择“粘贴”。
3. 文件管理工具的使用(1)文件搜索:在文件系统中快速找到所需的文件。
操作步骤:1)打开Windows资源管理器;2)在地址栏输入文件名或部分内容;3)按Enter键或点击搜索按钮。
(2)文件预览:查看文件内容,如图片、文档等。
操作步骤:1)打开Windows资源管理器;2)找到要预览的文件;3)双击文件,系统会自动打开相应的应用程序进行预览。
第1篇一、实验目的1. 熟悉文件和文件夹的基本操作。
2. 掌握文件的创建、复制、移动、删除等基本操作方法。
3. 学习如何使用文件管理器进行文件和文件夹的管理。
4. 了解文件属性的设置和修改方法。
二、实验环境1. 操作系统:Windows 102. 文件管理器:Windows资源管理器三、实验内容1. 文件的基本操作2. 文件夹的基本操作3. 文件属性的设置与修改4. 文件夹属性的设置与修改5. 文件夹的搜索与查找6. 文件夹的压缩与解压四、实验步骤1. 文件的基本操作(1)创建文件:在Windows资源管理器中,选择一个空白位置,右键点击,选择“新建” -> “文本文档”,然后输入文件名并按回车键。
(2)复制文件:选中需要复制的文件,右键点击,选择“复制”,然后在目标位置右键点击,选择“粘贴”。
(3)移动文件:选中需要移动的文件,右键点击,选择“剪切”,然后在目标位置右键点击,选择“粘贴”。
(4)删除文件:选中需要删除的文件,右键点击,选择“删除”,或者直接按Delete键。
2. 文件夹的基本操作(1)创建文件夹:在Windows资源管理器中,选择一个空白位置,右键点击,选择“新建” -> “文件夹”,然后输入文件夹名并按回车键。
(2)复制文件夹:选中需要复制的文件夹,右键点击,选择“复制”,然后在目标位置右键点击,选择“粘贴”。
(3)移动文件夹:选中需要移动的文件夹,右键点击,选择“剪切”,然后在目标位置右键点击,选择“粘贴”。
(4)删除文件夹:选中需要删除的文件夹,右键点击,选择“删除”,或者直接按Delete键。
3. 文件属性的设置与修改(1)选中文件,右键点击,选择“属性”,在“常规”选项卡中,可以设置文件的只读、隐藏等属性。
(2)在“安全”选项卡中,可以设置文件的安全权限,如完全控制、修改、读取等。
4. 文件夹属性的设置与修改(1)选中文件夹,右键点击,选择“属性”,在“常规”选项卡中,可以设置文件夹的只读、隐藏等属性。
操作系统实验报告实验名称:文件管理专业班级:网络工程1301学号:姓名:2015 年6 月16 日实验一文件管理一、实验目的文件管理是操作系统的一个非常重要的组成部分。
学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。
从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。
二、预备知识1.VS2010的使用2.C#的学习3.文件主目录与子目录的理解三、实验内容与步骤用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。
要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。
系统能够检查打入命令的正确性,出错时能显示出错原因。
对文件必须设置保护措施,例如只能执行,允许读等。
在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。
文件的操作至少有Create、delete、open、close、read、write 等命令。
所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。
前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。
另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。
程序流程图:逻辑设计:使用线性数组表表示MFD,泛型数组表示UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。
物理设计://主目录private FileUser[] mfd;//当前用户private FileUser currentuser;/// <summary>/// 文件/// </summary>public class FileObject {public string filename;public int size=20;public int read=0;public int write = 0;public string author;}/// <summary>/// 文件系统用户/// </summary>public class FileUser {public string username;public List<FileObject> ufd = new List<FileObject>();public int filecount=0;}步骤详述:1、主目录及用户目录机构显示:2、当前操作用户登录:3、文件管理系统菜单:4、create命令:5、open命令:6、close命令:7、delete命令:8、read命令9、write命令10、exit命令四、实验总结通过这次的课程设计使我认识到要将操作系统这门计算机专业的课学好不仅仅是要把书上的基本知识学好而且还要不断进行实践,将所学的跟实践操作结合起来才能更好地巩固所学,才能提高自己实践能力.通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识同样重要。
可以说此课程设计的理论难度并不大,但是若要深入发掘其中的东西,并且实际去编程实现,就遇到了相当大的难度。
因为与之涉及的很多方面并没有学过,需要自己去自学和实践检验。
五、程序清单using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace filemanagesystem{class Program{static void Main(string[] args){//初始化用户自模拟文件系统ExplorerInUser explorer = new ExplorerInUser();}}/// <summary>/// 文件管理系统for用户自模拟/// </summary>public class ExplorerInUser{//命令列表private string[] command = { "create", "open", "close", "delete", "read", "write","exit" };//主目录private FileUser[] mfd;//当前用户private FileUser currentuser;/// <summary>/// 构造函数/// </summary>public ExplorerInUser(){INI();}/// <summary>/// 初始化系统/// </summary>private void INI(){if (currentuser == null){//主目录实现IniUserList();}//系那是菜单InilizeMenu();bool isinput = false;//输入正确的命令while (!isinput){string input = Console.ReadLine();isinput=CommandGroup(input);}}#region 主目录/// <summary>/// 获取用户个数/// </summary>/// <returns></returns>private int GetUserCount(){string input = Console.ReadLine();try{int user_size = Convert.ToInt32(input);return user_size;}catch (Exception e){Console.WriteLine(e.Message);return 0;}}/// <summary>/// 生成用户及用户管理文件/// </summary>private void IniUserList(){int user_size = GetUserCount();mfd=new FileUser[user_size];for (int i = 0; i < user_size; i++){mfd[i] = new FileUser();mfd[i].username = "mfd_user_"+i;mfd[i].filecount = 3;Console.WriteLine("mfd:" + mfd[i].username + "," + mfd[i].filecount);for (int j = 0; j < 3; j++){FileObject file=new FileObject ();file.author = mfd[i].username;Console.WriteLine("--ufd:"+file.filename+","+file.size+","+file.autho r);file.filename="file"+j;mfd[i].ufd.Add(file);}}IniLogin();}/// <summary>/// 用户登录/// </summary>private void IniLogin(){Console.WriteLine("请输入用户名:");bool issuccess = false;while (!issuccess){string username = Console.ReadLine();for (int i = 0; i < mfd.Length; i++){if (mfd[i].username.Equals(username)){issuccess = true;currentuser = mfd[i];Console.WriteLine("当前用户:"+username); break;}}if (!issuccess){Console.WriteLine("请重新输入输入用户名:"); }}}#endregion#region 菜单/// <summary>/// 初始化菜单/// </summary>private void InilizeMenu(){Console.WriteLine("欢迎进入文件管理系统!");Console.WriteLine("------create-------");Console.WriteLine("------open---------");Console.WriteLine("------close--------");Console.WriteLine("------delete-------");Console.WriteLine("------read---------");Console.WriteLine("------write--------");Console.WriteLine("------exit---------");Console.WriteLine("请输入操作命令:");}/// <summary>/// 功能分组判断/// </summary>/// <param name="command"></param>/// <returns></returns>private bool CommandGroup(string command){bool isexit = true;switch (command){case "create": create(); break;case "open": open(); break;case "close": close(); break;case "delete": delete(); break;case "read": read(); break;case "write": write(); break;case "exit": exit(); return true; break;default:isexit = false;break;}if (isexit) { INI(); }else { Console.WriteLine("请重新输入操作命令:"); } return isexit;}#endregion#region 操作命令方法/// <summary>/// 创建新的文件/// </summary>private void create(){Console.WriteLine("请输入新件名:");string filename = Console.ReadLine();currentuser.filecount++;FileObject file = new FileObject();file.filename = filename;file.author = ername;currentuser.ufd.Add(file);Console.WriteLine("成功创建文件!");}/// <summary>/// 打开指定的文件/// </summary>private void open() {Console.WriteLine("请输入文件名:");string filename = Console.ReadLine();for (int i = 0; i < currentuser.ufd.Count; i++){if (currentuser.ufd[i].filename.Equals(filename)){Console.WriteLine("成功打开文件!");Console.WriteLine("ID:"+i);Console.WriteLine("FileName:"+filename);Console.WriteLine("Size:" + currentuser.ufd[i].size);Console.WriteLine("Autor:" + currentuser.ufd[i].author);return;}} Console.WriteLine("文件不存在!");}/// <summary>/// 关闭所有打开的文件/// </summary>private void close() {Console.WriteLine("已关闭文件");}/// <summary>/// 删除文件/// </summary>private void delete(){Console.WriteLine("请输入文件名:");string filename = Console.ReadLine();for (int i = 0; i < currentuser.ufd.Count; i++){if (currentuser.ufd[i].filename.Equals(filename)){currentuser.ufd.RemoveAt(i);Console.WriteLine("成功删除文件!");return;}} Console.WriteLine("文件不存在!");}/// <summary>/// 读取文件/// </summary>private void read() {Console.WriteLine("请输入文件名:");string filename = Console.ReadLine();for (int i = 0; i < currentuser.ufd.Count; i++){if (currentuser.ufd[i].filename.Equals(filename)) {Console.WriteLine("已读取文件!");return;}} Console.WriteLine("文件不存在!");}/// <summary>/// 写入文件/// </summary>private void write() {Console.WriteLine("请输入文件名:");string filename = Console.ReadLine();for (int i = 0; i < currentuser.ufd.Count; i++){if (currentuser.ufd[i].filename.Equals(filename)) {Console.WriteLine("已写入文件!");return;}} Console.WriteLine("文件不存在!");}/// <summary>/// 退出系统/// </summary>private void exit() {Console.WriteLine("您好,您已经成功退出系统!");Console.ReadKey();}#endregion}/// <summary>/// 文件/// </summary>public class FileObject {public string filename;public int size=20;public int read=0;public int write = 0;public string author;}/// <summary>/// 文件系统用户/// </summary>public class FileUser {public string username;public List<FileObject> ufd = new List<FileObject>(); public int filecount=0;}}。