Skip to content

a simulation of Unix File System under windows command environment

Notifications You must be signed in to change notification settings

GregOcean/mini_UFS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mini_UFS

mini-UFS文件系统使用说明

  1. 引言 1.1编写目的 为mini-UFS(微型模拟文件系统)软件的使用者与项目审核人提供功能查询等帮助。

1.2项目背景 BIT计算机专业软件基础实习课程实践项目。

1.3 定义 wFNnam Windows下的文件名,格式如——盘符:[/路径/]文件名[.扩展名]。 uFName mini-uFS下的文件名,格式如——文件名[.扩展名]。

  1. 软件概述 2.1目标

基于控制台程序实现windows下DOS系统中的部分文件操作功能。

2.2功能

1、通过create指令,用一个1G的文件模拟一个U盘的存储空间,称为 mini-uFS。 2、在 DOS 的命令行方式下执行 mount 命令进入 mini-uFS存储空间。 3、在该磁盘空间内进行一般文件系统功能的操作。

2.3 性能

项目 性能 (英文名/符号)文件/夹名长度 支持8字符

中文文件/夹名长度 支持3~4个汉字

最大存储文件/夹数 100,000

拷贝速度 无定值,一般在40mb/s左右,峰值为260mb/s

非法关闭 磁盘文件结构不会被破坏,但正在编辑的文件内容可能部分丢失。

打开不符合格式的磁盘空间文件 给出提示并拒绝操作。

非法指令 提示错误并拒绝操作。

用户习惯 对于部分指令照顾windows用户的习惯,如rm等效于del

同名文件 在同一目录下不允许文件名与扩展名相同的文件,

在同一目录下不允许同名的文件夹。

磁盘空间利用率 极限情况下,对于100,000个空文件,磁盘无法存入更多的数据而同时无数据块有实质性数据。

对于单个文件,支持最大1020.9mb的大小,亦即磁盘最大容量。

时间信息 精确到秒

文件大小、空间大小信息 精确到字节

拷贝速度检测 时间精确到百分之一秒、速度精确到百kb

通配符 对于查找search、删除del、列目录dr支持通配符功能:

支持用*与?来模糊搜索文件。

  1. 运行环境 3.1硬件 一般主流计算机均可运行。

3.2支持软件 支持Windows 2000及以上版本的windows操作系统。

  1. 使用说明

4.1安装和初始化

1、 将create.exe与mount.exe以及Vim.exe(否则edit的-vim参数所有的功能不能使用)拷贝至C:\Windows\System32文件目录下(该目录可能被隐藏)。

2、 在开始》搜索文件和程序中输入cmd.exe。

3、 输入create [wFNnam],在cmd的默认文件夹下产生该磁盘空间文件。

4、 输入mount [wFNnam],打开文件系统,使用该磁盘空间。

5、 系统预置的初始用户名为:Root,密码为123456。

6、根据此说明书,或help指令中提示的功能指令使用。

4.4出错和恢复

1、 误删除

对于用户删除的UFS磁盘空间中的文件,如果该删除操作是在本次运行文件系统的时间内,只须执行rc指令,文件便可恢复。

2、 误关闭

如若用户以非法方式对于文件系统的关闭操作,即不通过close指令进行的关闭,磁盘空间文件结构不会被破坏。

如果用户正在进行编辑操作,那么足够写满整数个数据块的数据不会丢失,但是余数部分(超出而不足4kb)的数据可能丢失。

3、一般错误信息列表

出错信息 含义&用户措施

命令错误,请重新输入。输入HELP来查看帮助。 用户输入了不存在的指令

错误:一个命令只能带有命令选项,请重新输入 相关指令需要参数

指令选项位置错误,请重新输入。 相关指令参数格式错误

错误:命令需要参数,请重新输入. 顾名思义

Dir 命令只针对当前目录。 顾名思义

错误:文件名不能为空. 执行新建文件等相关操作时未输入文件名

错误:文件扩展名不能为空。 执行新建文件等相关操作时未输入扩展名

错误:文件名长度超过限制。 顾名思义

错误:扩展名长度超过限制。 顾名思义

警告:命令不接收参数,参数将被忽略. 顾名思义

警告:命令不接收两个参数,第二个参数将被忽略. 相关操作仅需1个参数

错误:请输入目标文件夹路径. 相关操作必须制定路径

目标文件已存在,是否替换?yes(y) no(n) : 顾名思义,用户当键入y(确定)或者n(取消)。

目标文件夹已存在,是否替换?yes(y) no(n) : 顾名思义,用户当键入y(确定)或者n(取消)

文件夹剪切失败。 顾名思义

错误:请输入目标文件夹名。 顾名思义

错误:请输入目标文件夹路径. 顾名思义

错误:目标文件夹名非法。 顾名思义

警告:选项被忽略。 Tree指令不需要参数

用户名不能超过 10 个字符,请重新输入新用户名:

密码必须小于 10 个字符,请重新输入新密码: 创建用户时密码不符要求

4.5求助查询

在新的命令行中输入 help

  1. 操作命令一览表(粗体为需求分析中未做要求的额外功能)

指令 描述 使用格式

Create 在cmd.exe中操作,创建新文件夹。

help 帮助、查看所有指令 Help:查看所有指令的功能信息

Help [cmd] :查询指令cmd的具体用法等信息

cd 变更到指定目录下

使用..指定改成父目录

使用~指定目录的绝对路径 CD [path]

CD ~\[path]

CD ..

path 目录的相对路径

例如 键入 cd ~\temp 将会变更到temp文件夹下当前的目录字符串会被转换成使用磁盘名上的大小写。

所以,如果磁盘上的大小写如此,CD \TEMP 会将当前目录设为\Temp。 CD 命令将空格视为分隔符,所以目录中请不要包含空格。

new 创建一个新的文件 new[path][filename]

path绝对路径或相对路径均可,用于指明创建文件的具体位置

如不填写,默认为当前目录下创建文件

filename创建的文件名称

如不填写系统将以默认文件名创建文件。

newdir 创建一个新的文件夹

如果不输入则系统会使用默认文件夹名创建文件夹。在当前目录下创建一个新的文件夹

NEWDIR 命令将空格视为分隔符,所以目录中请不要包含空格。 newdir [path] [dirname]

path 绝对路径或相对路径均可,用于指明需要删除文件夹的具体位置

dirname 创建的文件夹名称

cp 将一个文件复制到另一个位置 cp[path1]filename1[path2]filename2

path1path2绝对路径或相对路径均可,用于指明文件的具体位置

如不填写,默认为当前目录下

cpdir 将一个文件夹复制到另一个位置CPDIR命令将空格视为分隔符,所以目录中请不要包含空格 cpdir[path1]filename1[path2]filename2 path1path2 绝对路径或相对路径均可,用于指明文件夹的具体位置,如不填写,默认为当前目录下

cut 将一个文件剪切到另一个位置 cut[path1]filename1[path2]filename2

path1path2绝对路径或相对路径均可,用于指明文件的具体位置

如不填写,默认为当前目录下

执行成功后文件1会被删除

cutdir 将一个文件夹剪切到另一个位置如不填写,默认为当前目录下

执行成功后文件夹1会被删除

CUTDIR命令将空格视为分隔符,所以目录中请不要包含空格。 cutdir[path1]filename1[path2]filename2 path1 path2 绝对路径或相对路径均可,用于指明文件夹的具体位置

rename 重命名一个文件

执行成功后将会把文件名变更成所需名称 rename[path]filename1filename2

path绝对路径或相对路径均可,用于指明文件的具体位置

如不填写,默认为当前目录下

filename1需要重命名的文件名称

filename2更改后的文件名称

renamedir 重命名文件夹。 renamedir[path]dirname

path绝对路径或相对路径均可,用于指明文件夹的具体位置

如不填写,默认为当前目录下

rm 删除至少一个文件 rm[path]filename

path绝对路径或相对路径均可,用于指明文件的具体位置

filename需要删除的文件名称,支持使用通配符。

如不填写,默认为当前目录下

rmdir 删除至少一个文件夹 与deldir功能相同,详见deldir

del 删除至少一个文件 与rm功能相同,详见rm

deldir 删除一个文件夹

将会把文件夹以及里面的子文件夹和文件一并删除

DELDIR命令将空格视为分隔符,所以目录中请不要包含空格。 deldir[path]dirname

path 绝对路径或相对路径均可,用于指明需要删除文件夹的具体位置

dirname 需要删除的文件夹名称,支持使用通配符。

dr 显示当前目录中的文件和文件夹

filename指定要列出的文件名,支持正则表达式。

文件和文件夹将以文件名字母顺序排序。 dr[filename]

如果不填,执行成功后将在屏幕中列出当前目录下的所有文件和文件夹

tree 以树形结构展示文件系统

执行命令tree后,将会以树形形式把文件系统输出在屏幕上 tree[-option]

可用option:

-r:以树形结构展示整个文件系统

-n:以树形结构展示当前目录文件系统

如果不写选项则默认使用-n选项。

type 以普通文本形式显示一个文件的内容

执行成功后将会把指定文件中的内容输出到屏幕上 type[path]filename

path绝对路径或相对路径均可,用于指明文件的具体位置

如不填写,默认为当前目录下

filename需要显示的文件名称

more 以分页文本形式显示一个文件的内容

执行成功后将会把指定文件中的内容以分页形式输出到屏幕上 more[path]filename

path绝对路径或相对路径均可,用于指明文件的具体位置

如不填写,默认为当前目录下

filename需要显示的文件名称

search 在文件系统内搜索文件。 search[path]filename

path绝对路径或相对路径均可,用于指明文件夹的具体位置

如不填写,默认为当前目录下

filename指定要搜索的文件名,支持使用正则表达式。

fmt 格式化磁盘

执行成功后,将会格式化整个磁盘空间,清空里面的所有文件

系统文件等将被恢复最初状态 fmt[-option]

可用option:

-d:低级格式化

-n:普通格式化

如果不写选项则默认使用-n选项。

space 执行成功后,将会显示当前磁盘空间的使用情况到屏幕中 space

att 显示一个文件的具体属性 attdir[path]filename

path绝对路径或相对路径均可,用于指明文件夹的具体位置

如不填写,默认为当前目录下

执行成功后将会显示文件的属性,如可读可写等

attdir 显示一个文件夹的具体属性 attdir[path]dirname

path绝对路径或相对路径均可,用于指明文件夹的具体位置

如不填写,默认为当前目录下

执行成功后将会显示文件夹的属性,如可读可写等

rc 恢复一个已删除文件

执行成功后,文件将会恢复删除前状态 rc[filename]

filename需要恢复文件的名称

如不填写,将恢复最近一次删除的文件

deleted 显示回收站中的所有文件和文件夹 deleted

执行成功后,将会显示所有回收站中的文件和文件夹名称到屏幕中

user 更改用户名和密码 User

执行成功后,将会进入下一步操作

根据操作完成用户名和密码的重新设置

block 显示一个文件所使用的数据块

执行成功后将会把指定文件中的内容以数据块形式输出到屏幕上 block[path]filename

path绝对路径或相对路径均可,用于指明文件的具体位置

如不填写,默认为当前目录下

filename需要显示的文件名称

edit 编辑文件功能

可用option:

-w:以覆写形式打开文件。

-a:以追加形式打开文件。

-vim:使用Vim打开文件。

如果不添加选项则默认使用-a选项。 edit[-option][path]filename

path绝对路径或相对路径均可,用于指明文件的具体位置

如不填写,默认为当前目录下

filename需要编辑的文件名称

执行成功后,可以键入想写入文件中的内容

使用-w和-a选项时需要结束编辑按CTRL+C

rename 重命名一个文件

执行成功后将会把文件名变更成所需名称 rename [path]filename1 filename2

path 绝对路径或相对路径均可,用于指明文件的具体位置

如不填写,默认为当前目录下

filename1 需要重命名的文件名称

filename2 更改后的文件名称

close 关闭miniUFS系统

执行成功后,将会关闭miniUFS系统 Close

  1. 程序文件(或命令文件)和数据文件一览表

文件名 后缀 说明

BOF .cpp 查看文件所占用的数据块

Close .cpp 关闭文件系统

Copy .cpp 拷贝文件

Cpdir .cpp 拷贝文件夹

Cut .cpp 剪切操作

Delete .cpp 删除文件

Dir .cpp 查看当前目录下文件信息

Display .cpp 打开并显示文件内容

DisplayAttribute .cpp 显示属性

Edit .cpp 向一空文件写入数据

Format .cpp 格式化磁盘空间

Help .cpp 帮助

InitOnStart .cpp 文件系统初始化

Login .cpp 用户登录控制

main .cpp 主函数

New .cpp 新建文件

ParseCommand .cpp 检测指令函数

PublicFunc .cpp 共有函数的实现

Pcre .h PCRE库(正则表达式,即通配符所需)

Function .h 函数的定义,包括公有函数与功能函数

Global .h 宏定义、全局变量的定义

Structure .h 文件与数据块的结构定义

About

a simulation of Unix File System under windows command environment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published