文件系统模拟实验

这篇具有很好参考价值的文章主要介绍了文件系统模拟实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘 要

        文件系统作为操作系统中最为重要的组成部分之一,它的主要功能就是对文件进行管理。文件系统位于操作系统的顶层。在操作系通的接口中文件系统扮演着十分重要的地位,他把我们使用计算机操作的抽象数据转换为能够在计算机物理设备上存放的具体数据,并且给我们提供访问和谐数据的结构和方法。本文主要介绍用java实现一个文件模拟的操作,主要功能有创建目录,删除目录,重命名目录,更改目录权限,显示目录结构,创建文件,  删除文件,重命名文件,显示文件内容, 更改文件内容,更改文件权限,退出。

        现代操作系统中都配备文件系统,以适应系统资源管理和用户使用信息的需要。我们做的这个系统论述了如何模拟实现一个文件系统,主要完成对文件与目录进行一些基本的操作功能。给出了模拟文件系统的数据结构设计和整体框架。

        完成了文件的整体功能,每个功能都涉及一定的算法,通过一个简单的文件系统的实现,理解文件系统的内部功能和内部实现;进一步理解操作系统;通过对实际问题的编程实现,获得实际应用和编程能力

1.1 环境需求

硬件:台式或者笔记本电脑

软件:1. window 10系统。

2. IntelliJ IDEA 2020.2 x64。
 

2.2 功能模块设计

  1. 创建目录
  2. 删除目录
  3. 重命名目录
  4. 更改目录权限
  5. 显示目录结构
  6. 创建文件
  7. 删除文件
  8. 重命名文件
  9. 显示文件内容
  10. 更改文件内容
  11. 更改文件权限
  12. 退出。

3.3 功能需求

  1. 文件模拟系统运行后弹出操作界面,展示出功能选项,提示用户输入后进行相应功能的操作。
  2. 创建好数据结构,设置相应的目录类和文件类,同时设计好父子目录、子文件,可读可写等权限的成员变量。
  3. 创建目录时输入当前目录名,判断是否存在此目录,若不存在显示“目录不存在”,则返回,若存在,便判断目录是否有可写权限,若没有,则显示“权限不够”后返回,若有权限,则要求用户输入新的目录名。判断输入目录名是否有同名目录,有则显示“目录重名”并返回,无则创建目录实例,与父目录和兄弟目录建立连接(若有),最后显示“创建成功”。
  4. 删除目录时输入删除的目录名,判断目录是否为根目录,若是则显示“根目录不能删除”,若不是则判断此目录是否存在,若不存在,则显示“目录不存在”后返回,若存在在判断是否有可写权限,权限不够则提示后直接返回,有权限的话断开与此目录的所有连接并释放空间,同时要更新父目录和兄弟目录连接,最后显示“删除成功”。
  5. 重命名目录流程输入原目录名,判断目标目录是否为根目录,若是,则显示“根目录不能重命名”,若不是在进行目录是否存在的判断,不存在则提示后返回,存在则输入新目录名,再对新目录名判断是否重名,若重名则提示更改失败,不重名则修改对应目录的目录名,最后提示成功。
  6. 更改目录权限需要输入目录名,判断目标目录是否为根目录,若是提示失败并返回,不是在进行目录存在判断,存在目录时提示输入新的读写权限,最后显示“更改目录权限成功”。
  7. 更改文件内容需要先输入文件名,判断文件是否存在,若不存在则提示失败后返回,存在时进行文件是否有可写的判断,权限不够则返回,权限满足提示输入修改的文件内容,最后修改此文件的文件内容,并提示更改问加内容成功。
  8. 显示目录结构,设计思想如下:设置一个rearholder当作指针,指向root的第一个孩子目录,若没有直接结束,若有孩子,设置外层循环,输入rearholder目录名和它的所有文件名,再判断当前目录的孩子目录是否为空,若不为空,rearholder指向孩子目录,继续下一循环,若为空再判断当前目录是有有同级目录,若有同级目录,rearholder则指向同级目录,否则rearholder指向父目录,再用一层循环判断是否有同级目录,没有则指向父目录,循环出来如果有同级目录,则指向同级目录,如此往复,则可以得到整个目录文件结构。
  9. 创建文件时输入当前目录名,判断是否存在此目录,若不存在显示“目录不存在”,则返回,若存在,便判断目录是否有可写权限,若没有,则显示“权限不够”后返回,若有权限,则要求用户输入新的文件名。判断输入文件名在此目录下是否有同名文件,有则显示“文件重名”并返回,无则创建文件实例,与父目录和兄弟文件建立连接(若有),最后显示“创建成功”。
  10. 删除文件时输入当前的目录名,判断此目录是否存在,若不存在,则显示“目录不存在”后返回,若存在在判断是否有可写权限,权限不够则提示后直接返回,有权限的话断开与此文件的所有连接并释放空间,同时要更新父目录和兄弟文件连接,最后显示“删除成功”。
  11. 重命名文件流程输入当前的目录名,进行目录是否存在的判断,不存在则提示后返回,存在输入需要重命名的文件 ,判断是否有此文件,如有再输入新文件名,判断新文件名判断是否重名,若重名则提示更改失败,不重名则修改对应文件的文件名,最后提示成功。
  12. 显示文件内容时输入当前的目录名,判断此目录是否存在,若不存在,则显示“目录不存在”后返回,若存在在判断是否有可读权限,权限不够则提示后直接返回,有权限则输出文件里的内容。
  13. 关闭系统,输入12后退出系统。

 测试用例和结果

1.初始化模块
 

1.初始化模块

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

2.创建目录folder1

 java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

3.创建文件再folder1里创建file1

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

4.重命名目录folder1为folder2

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

5.更改目录folder2权限

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

6.显示目录结构:创建三个目录和三个文件,镶嵌关系如图所示

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

7.删除目录root和folder2(root无法删除)

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

8.删除文件

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

9.重命名文件

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

10.显示文件内容

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

11.更改文件内容

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

12.更改文件权限

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java

13.退出

java实现一个模拟的文件系统,它被整个存储在磁盘上一个普通文件中。这个磁盘文件,服务器,运维,java文章来源地址https://www.toymoban.com/news/detail-770198.html

到了这里,关于文件系统模拟实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java模拟实现一个基于文本界面的《记账软件》

    /* *@author: Noiimplant *@version: 1.0 */ 根据尚硅谷java教程进行练习 记录家庭支出、收入,打印收支明细表 使用分级菜单的方式 原文链接: 尚硅谷java教程链接

    2023年04月25日
    浏览(39)
  • 【java】如何获取整个文件夹的文件名称

    需求 有时候我们需要一个文件夹里的所有文件的名称我们只能截图,然后再使用微信提取出其中的文字,这样是比较麻烦的,今天给大家介绍使用java提取所有文件的名字,代码如下:

    2024年02月14日
    浏览(56)
  • 【Linux】磁盘分区与永久挂载,实操模拟损坏文件系统,只要一个命令即可修复!!!

    目录 一、磁盘基础内容 1、了解扇区的大小,以及与块的关系 2、磁盘的第一个扇区的内容 二、在Linux中使用硬盘的三大步骤 1、分区 ----分区的作用:提高硬盘的性能 ----分区的命令 ----分区的分类: ----实操分区实验 2、创建文件系统 ----文件系统类型: ----创建文件系统的命

    2024年02月04日
    浏览(48)
  • 【Java】Java使用Swing实现一个模拟计算器(有源码)

       📝个人主页:哈__ 期待您的关注  今天翻了翻之前写的代码,发现自己之前还写了一个计算器,今天把我之前写的代码分享出来。  我记得那会儿刚学不会写,写的乱七八糟,但拿来当期末作业还是不错的哈哈。 直接上源码,后上讲解。 计算器上的按键不少,我们都定

    2024年04月11日
    浏览(66)
  • 操作系统实验一模拟优先级调度算法(C语言实现附带详细注释)

    文章目录 优先级调度算法介绍 两种情况 调度算法分类 优先级分类 实验内容与要求 实验步骤 调度算法总流程图  优先级调度算法流程图  实验代码 实验结果         优先级调度算法既可以用于作业调度,又可以用于进程调度。该算法中的优先级用于描述作业或者进程的

    2024年02月01日
    浏览(53)
  • 用Java来实现区块链原理并简单模拟开发一个小工具

    前几天心血来潮,用Java模拟实现了一个区块链小工具,该工具是单机版的,没有实现联网功能,属于是单节点的工具,但是对于区块链的核心wk逻辑功能都实现了,如:wk、钱包、转账、记账等功能。界面实现用到了Java的swing包。 下面先看下运行的效果: 主界面: 转账:  

    2024年02月11日
    浏览(40)
  • 模拟文件系统的设计与实现

    模拟文件系统的实现的基本功能,了解文件系统的基本结构和文件系统的管理方法,加深了解文件系统的内部功能的实现。通过高级语言编写和实现一个简单的文件系统,模拟文件管理的工作过程,从而对各种文件操作系统命令的实质内容和执行过程有比较深入的了解。通过编

    2024年02月11日
    浏览(31)
  • 实验课题——最全手机通信录实现版本(【含注释】848行代码)!!!(包括模糊查询、分类查找、模拟拨号、qsort函数实现排序、文件存储、防误触等功能)

    目录 简介: 基本要求: 代码的实现: 1、Contact.h 2、test.c 3、Cantact.c 运行效果图: 部分复杂函数流程图 前两周是本人的实验周,抽到的课题是 “手机通信录的实现” ,课题大致如下: (1)用C/C++设计出模拟手机通信录系统,实现对手机中的通信录进行管理。 (2)将通讯录用

    2024年02月07日
    浏览(49)
  • Java模拟实现ATM系统

    前言: 自动取款机又称ATM(Automated Teller Machine的缩写),意思是自动柜员机,因大部分用于取款,又称自动取款机。它是一种高度精密的机电一体化装置,利用磁性代码卡或智能卡实现金融交易的自助服务,代替银行柜面人员的工作。可提取现金、查询存款余额、进行账户之

    2024年02月10日
    浏览(40)
  • 模拟Linux文件管理员系统-shell实现

    目录 模拟Linux文件管理员系统-shell实现 1 系统要求 2 脚本执行效果 2.1 管理员登录效果 2.2 普通用户登录效果 2.3 密码文件格式 3 实现脚本 4 密码文件 5 说明 注:此脚本仅供学习使用,具体需要根据实际情况进行测试调整。 用空格隔开,从左往右依次为: 用户名 密码 是否为

    2024年02月12日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包