第六章 文件管理(一)
- 格式:doc
- 大小:88.50 KB
- 文档页数:20
第六章文件管理一、选择题1.文件系统最基本的目标是(A),它主要是通过(B)功能实现的,文件系统所追求的最重要的目标是(C)。
A,C:(1)按名存取;(2)文件共享;(3)文件保护;(4)提高对文件的存取速度;(5)提高I/O 速度;(6)提高存储空间利用率。
B:(1)存储空间管理;(2)目录管理;(3)文件读写管理;(4)文件安全性管理2.在文件系统中可命名的最小数据单位是(A),用户以(B)为单位对文件进行存取、检索等,对文件存储空间的分配则以(C)为单位。
A,B,C:(1)字符串;(2)数据项;(3)记录;(4)文件;(5)文件系统。
3.按逻辑结构可把文件分为(A)和(B)两类,UNIX系统中的文件系统采用(B)。
A,B:(1)读、写文件;(2)只读文件;(3)索引文件;(4)链式文件;(5)记录式文件;(6)流式文件。
4.假定盘块的大小为1KB,对于1.2MB的软盘,FAT需占用(A)的存储空间;对于100MB的硬盘,FAT需占用(B)的存储空间。
A:(1)1KB;(2)1.5KB;(3)1.8KB;(4)2.4KB;(5)3KB。
B:(1)100KB;(2)150KB;(3)200KB;(4)250KB;(5)300KB。
5.从下面的描述中选出一条错误的描述。
(1)一个文件在同一系统中、不同的存储介质上的拷贝,应采用用一种物理结构。
(2)文件的物理结构不仅与外存的分配方式相关,还与存储介质的特性相关,通常在磁带上只适合使用顺序结构。
(3)采用顺序结构的文件既适合进行顺序访问,也适合进行随机访问。
(4)虽然磁盘是随机访问的设备,但其中的文件也可使用顺序结构。
6.从下面关于顺序文件和链接文件的叙述中,选出一条正确的叙述。
(1)顺序文件适合于建立在顺序存储设备上,而不适合于建立在磁盘上。
(2)显式链接文件将分配给文件的下一个物理盘块的地址登记在该文件的前一个物理盘块中。
(3)顺序文件必须采用连续分配方式,而链接文件和索引文件则可采用离散的分配方式。
文件类别管理制度包括第一章总则第一条为规范文件管理行为,提高工作效率,制定本制度。
第二条本制度适用于本单位及其下属机构所有文件的管理工作。
第三条文件类别管理是指根据文件的性质、用途、存档周期等因素,将文件划分为不同的类别,便于管理和查找。
第四条文件管理应遵循依法、科学、规范的原则,做到分类齐全、管理有序、检索方便。
第五条文件类别管理制度的具体内容包括:文件类别的划分、文件的编号规则、文件的存档与借阅、文件的销毁与归档、文件管理责任等内容。
第六条文件管理工作应由专门的管理人员负责,并进行定期的审核和评估。
第七条本制度由本单位文件管理部门负责制定和管理,适时根据工作需要进行调整和完善。
第二章文件类别划分第八条文件类别应根据文件的性质、用途等因素进行合理划分,便于管理和保存。
第九条文件类别的划分应遵循以下原则:(一)根据文件的性质进行分类,如批复文件、通知文件、指示文件等。
(二)根据文件的用途进行分类,如会议文件、工作计划文件、报告文件等。
(三)根据文件的存档周期进行分类,如永久文件、长期文件、定期文件等。
(四)根据文件的保密程度进行分类,如机密文件、秘密文件、普通文件等。
第十条文件类别的划分应由文件管理部门根据实际情况进行调研和分析,制定科学合理的划分标准,并进行公示。
第十一条文件类别的划分标准应定期进行评估和调整,保证文件管理工作的科学性和合理性。
第三章文件的编号规则第十二条文件的编号规则应便于管理和查找,使每一个文件能够快速准确地被找到。
第十三条文件的编号规则应根据文件的类别进行制定,一般应包括文件的类别代码、年份代码、顺序号等信息。
第十四条文件的编号应由文件管理部门进行统一制定,并在文件的封皮、封底上予以标注。
第十五条文件编号的规则应遵循以下原则:(一)编号应简洁明了,方便管理和查找。
(二)编号应具有时效性,以便及时更新和调整。
(三)编号制度应在单位内部广泛宣传,确保每个工作人员都能够正确理解和遵守。
操作系统第六章答案第六章⽂件管理1、何谓数据项、记录和⽂件P203 P204答:数据项:数据项是最低级的数据组织形式,是数据组中可以命名的最⼩逻辑数据单位,若⼲个基本数据项组成的。
记录:记录是⼀组相关数据项的集合,⽤于描述⼀个对象在某⽅⾯的属性。
⽂件:⽂件是指由创建者所定义的、具有⽂件名的⼀组相关元素的集合,可分为有结构⽂件和⽆结构⽂件两种。
在有结构的⽂件中,⽂件由若⼲个相关记录组成;⽽⽆结构⽂件则被看成是⼀个字符流。
⽂件在⽂件系统中是⼀个最⼤的数据单位,它描述了⼀个对象集。
2、⽂件系统的模型可分为三层,试说明其每⼀层所包含的基本内容。
P206图答:1、对象及其属性:⽂件、⽬录、硬盘(磁带)存储空间;2、对对象操纵和管理的软件集合:⽂件管理系统的核⼼部分;3、⽂件系统的接⼝:命令接⼝、程序接⼝;3、试说明⽤户可以对⽂件施加的主要操作有哪些。
P207答:1、最基本的⽂件操作:创建⽂件、删除⽂件、读⽂件、写⽂件、截断⽂件、设置⽂件的读/写位置;2、⽂件的“打开”和“关闭”操作;3、其它⽂件操作;4、何谓逻辑⽂件何谓物理⽂件P208答:逻辑⽂件:这是从⽤户观点出发所观察到的⽂件组织形式,是⽤户可以直接处理的数据及其结构,它独⽴于⽂件的物理特性,⼜称为⽂件组织。
物理结构:⼜称为⽂件的存储结构,是指⽂件在外存上的存储组织形式。
这不仅与存储介质的存储性能有关,⽽且与所采⽤的外存分配⽅式有关。
5、如何提⾼对变长记录顺序⽂件的检索速度P210答:对于变长记录的顺序⽂件,在顺序读或写时的情况相似,但应分别为它们设置读或写指针,在每次读或写完⼀个记录后,须将读或写指针加上Li。
Li 是刚读或刚写完的记录的长度。
6、试说明对索引⽂件和索引顺序⽂件的检索⽅法。
P211 P212答:在对索引⽂件进⾏检索时,⾸先是根据⽤户(程序)提供的关键字,并利⽤折半查找法去检索索引表,从中找到相应的事项;再利⽤该表项中给出的指向记录的指针值,去访问所需的记录。
第6章文件管理6.4习题6.4.1 基本题一.判断题(正确的在括号中记√,错误的记×)1.如果用户极其频繁地访问其当前目录中的文件,那么应将该目录放在内存。
( )2,打开文件操作的目的是建立用户和文件的联系。
()3.连续文件的缺点之一是不便于扩充。
( )4.文件保护就是禁止对文件的进行存取。
()5.树结构目录的层次和隶属关系清晰,有利于文件和目录的共享。
( )6.多重索引结构适合于有大量大文件的系统。
( )7.隐式链接结构可以提高文件存储空间的利用率,但不适合文件的随机存取。
( )8.访问控制矩阵比访问控制表更节约空间。
( )9.对物理文件来说,顺序文件必须采用连续分配方式,而链接文件和索引文件可采用离散分配方式。
( )10.文件系统中,所有文件的目录信息集中存放在内存的一个特定区域中。
( )二.单项选择题1.文件系统是指___________。
A.文件的集合B.文件的目录C.实现文件管理的一组软件D.文件、管理文件的软件及数据结构的总体2.按逻辑结构可把文件分为记录式文件和________两类。
A.读、写文件B.只读文件C.索引文件D.流式文件3.文件系统中文件存储空间的分配是以_______为单位进行的。
A.字B.块C.字节D.文件4.从用户角度看,引入文件系统的主要目的是_______。
A.实现虚拟存储B.保存系统文档C.实现对文件的按名存取 D,保存用户和系统文档5.一个文件系统采用二级目录结构,它的两张目录分别是__________。
A.系统目录和子目录B.根目录和子目录C.主目录和用户目录D.用户目录和子目录6、Hash文件采用的寻址方法是________。
A.计算B.比较C.索引D.顺序7.文件系统中用__________管理文件。
A.作业控制块B.外页表C.目录D.软硬件结合的方法8.可以解决文件重名问题的最简单的文件目录结构是______。
A.单级目录B.树型结构目录C.二级目录D.便于共享的目录9.为了对文件系统中的文件进行安全管理,任何一个用户在进入系统时都必须进行注册,这一级安全管理是_________安全管理。
第六章文件管理1.树形目录结构的第一级称为目录树的B。
A. 当前目录B. 根结点C. 叶结点D. 终结点2.完整路径法访问文件是从 C开始按目录访问某个文件。
A. 当前目录B. 用户主目录C. 根目录D. 父目录3.逻辑文件是B的文件组织形式。
A. 在外部设备上B. 从用户观点看C. 虚拟存储D. 目录4.根据外存设备不同,文件被划分为若干个大小相等的物理块,它是 A 的基本单位。
A. 存放文件信息或分配存储空间B. 组织和使用信息C. 表示单位信息D. 记录式文件5.在文件系统中,从文件的物理组织上看,索引文件结构中的索引表是用来 D。
A. 指示逻辑记录逻辑地址的B. 存放部分数据信息的C. 存放查找关键字项内容的D. 指示逻辑记录和物理块之间对应关系的6.在文件系统中,要求物理块必须连续的物理文件是 A 。
A. 连续文件B. 链接文件C. 索引文件D. Hash文件7.在文件系统中, A 的逻辑文件是记录顺序与物理文件中占用的物理块顺序一致。
A. 连续文件B. 链接文件C. 索引文件D. Hash文件8.目录文件中所存放的信息是 D 。
A. 某一文件存放的数据信息B. 某一文件的文件目录B. 该目录中所有数据文件的目录 D. 该目录中所有子目录文件和数据文件的目录9.在操作系统中,将文件名转换为文件存储地址,对文件实施控制管理都是通过A 来实现的。
A. 文件目录B. PCB表C. 路径名D. 文件名10.通过对用户分类和限定各类用户对目录和文件的访问权限来保护系统中的目录和文件的安全,这是指B。
A. 系统级安全管理B. 用户级安全管理C. 目录级安全管理D. 文件级安全管理11.通过设置文件的属性来控制用户对文件的访问,这是指 D 。
A. 系统级安全管理B. 用户级安全管理C. 目录级安全管理D. 文件级安全管理12. A 是指有关操作系统和其它系统程序组成的文件。
A. 系统文件B. 文档文件C. 用户文件D. 顺序文件13. B 是指将数据进行加工处理后形成的具有保留价值的文件。
文件是同一类型元素的有序集合,是内存与外设间传输数据的渠道。
一些外设如显示器、键盘、打印机等都可以看作文件,但最常用的还是磁盘文件,这也是本章我们主要讨论的对象。
Delphi继承了Object Pascal的文件管理功能,并有很大的发展,其中最主要的是提供了用于文件管理的标准控件,同时也提供了更多的文件管理函数。
利用Delphi的强大功能,开发一个自己的文件管理系统就成为很容易的事。
本章首先介绍Delphi文件管理的基本概念和标准过程/函数,并提供了一个记录文件的应用实例,这是从我们实际课题开发中提取出来的。
而后介绍Delphi提供的文件控件的使用方法。
最后提供的一个综合例程MDI文件管理器则是对Delphi文件管理功能的综合应用。
6.1 文件类型和标准过程Delphi同Object Pascal一样支持三种文件类型,即:文本文件、记录文件、无类型文件。
6.1.1文本文件文本文件类型的变量用如下方法声明:varTextFileVar: Text ;文本文件是以行为单位进行读、写操作的。
由于每一行长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。
而且文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。
6.1.1.1 文本文件的打开、关闭文本文件的打开需要两个步骤:(1). 文件变量与文件名关联;(2). 初始化读写。
联文件变量与文件名调用AssignFile标准过程:AssignFile ( TextFileVar , FileName ) ;FileName 既可以是全路径名,也可以仅是文件名。
对于后者系统将在当前目录下查找。
AssignFile是Delphi新提供的一个函数,其功能等价于Object Pascal中的Assi gn。
而Assign在Delphi中更多地被用作一个方法名。
初始化读写有三种方式:1. Reset : 为读打开文件并把文件指针移动到文件首;2. Rewrite : 为写创建一个新文件;3. Append : 为写打开存在的文件并把文件指针定位在文件尾。
当使用Reset或Append过程而文件不存在时将会引发一个I/O异常。
有关I/O异常的处理请参看本章例程和第十二章中的介绍。
文件的关闭很简单,只须调用CloseFile过程即可。
虽然Delphi应用程序在退出时会自动关闭所有打开的文件,但自己动手关闭文件可以确保释放文件句柄,并使程序的可移植性增强。
为保持兼容,Delphi也允许用户用Assign建立关联,Close关闭文件。
6.1.1.2 文本文件的读写从文本文件中读取信息用Read、Readln两个标准过程。
当读入数值时,Read、Readln假定数值是用一个或多个空格分开的,而不是逗号、分号或其它字符。
对如下一条语句:Read ( TextFileVar , Num1 , Num2 , Num3 ) ;如果文件中的数值是:100 200 300则能够成功读入,而若文件中的数值是100 200, 300则Read读入“200,”并试图把它转化成一个数值时会引发一个异常。
当读入字符是字符串时,Read、Readln过程总是读取尽可能多的字符填充到字符串变量中或一直读到行结束符为止。
因此从文本文件中读取格式化的字符串数据,必须声明与其长度相匹配的字符串变量。
如果要从文件中读取单词,必须先把文件中的每一行读入字符串,然后再从字符串中逐个分析出单词。
或者一次只从文本文件中读入一个字符并测试每个字符后是否是单词断开处。
格式化字符串之间的分隔符应读入到一个临时变量中,而字符串与数值、数值与数值间的分隔符读入时会自动识别剔除。
对如下一行数据:Mon 12:10 40 50定义varDay: string[3] ;Time: string[5] ;Num1, Num2: Integer ;则须用如下的read 语句读入:read ( TextFileVar , Day , c , Time , Num1 , Num2 ) ;C为一个临时字符变量。
6.1.1.3 文本文件的编辑在Delphi中实现对一个文本文件的编辑,只须让其与一个Tmemo控件建立关联即可:Memo1.Lines.LoadFromFile ( TextFileName ) ;这样在TMemo上所做的一切修改当调用Memo部件的SaveToFile方法后都会反映到文件中去。
6.1.2 记录文件记录文件是一种操作更为灵活的文件类型。
它允许同时为读和写打开,而且由于记录文件中每条记录的长度固定,所以可随机存取。
记录文件的类型变量可如下声明:varRecordFileVar: file of RecordType;RecordType是一个自定义的记录类型。
有关记录文件的操作我们将在下一节中结合例程进行讨论。
6.1.3 无类型文件无类型文件提供了底层的I/O通道,可用于存取可变长度记录的文件。
经常用于文件的复制操作中。
由于Delphi提供了更好的方法(见第四节),所以无类型文件很少使用。
有兴趣的读者可参看BlockRead、BlockWrite两个联机帮助主题。
6.1.4 Delphi的文件管理标准过程根据功能我们把标准过程划分为十一类进行介绍。
6.1.4.1 文件的打开与关闭AssignFile :把一个外部文件名和一个文件变量相关联Reset :打开一个存在的文件Rewrite :创建并打开一个新文件(或覆盖原有文件)Append :以添加方式打开一个文件(只适用于文本文件)CloseFile :关闭一个打开的文件FileOpen :打开一个特定的文件并返回文件句柄FileCreate :创建一个给定文件名的文件并返回文件句柄FileClose :关闭一个特定句柄的文件后边三个文件主要供系统内部使用,在文件复制的编程中也往往会用到。
它们操作的对象是文件句柄而不是文件变量。
6.1.4.2 文件定位Seek :把文件当前位置移到指定部分FilePos :返回文件的当前位置Eoln :返回行结束标志EOF :返回文件结束标志FileSeek :改变当前文件指针的位置Seek与FileSeek的区别是:1. Seek仅用于记录文件;2. FileSeek的参数是文件句柄、偏移量、起始位置。
其中起始位置有文件首、当前位置、文件尾三种选择。
Seek的参数是文件变量、偏移量,偏移量是从文件首开始定位的。
3. FileSeek的偏移量以字节数来计算,而Seek是根据记录号进行移动。
Seek、FilePos仅用于记录文件。
但任何文件都可以看作是基于字节的记录文件。
下面一段程序表示了它们的用法。
{ 该例子的设计界面为一个包含TOpenDialog部件的窗体。
}uses Dialogs;varf: file of Byte;size: Longint;S: String;y: Integer;beginif OpenDialog1.Execute thenbeginAssignFile(f, OpenDialog1.FileName);Reset(f);size := FileSize(f);S := 'File size in bytes: ' + IntToStr(size); y := 10;Canvas.TextOut(5, y, S);y := y + Canvas.TextHeight(S) + 5;S := 'Seeking halfway into file...';Canvas.TextOut(5, y, S);y := y + Canvas.TextHeight(S) + 5;Seek(f,size div 2);S := 'Position is now ' + IntToStr(FilePos(f)); Canvas.TextOut(5, y, S);CloseFile(f);end;end.6.1.4.3 文件删除与截断Erase :删除一个存在的文件DeleteFile :删除一个文件Truncate :从文件当前位置将文件截断Erase与DeleteFile的区别是:Erase以文件变量为参数,当文件不能删除时引起一个异常;DeleteFile以文件名为参数,当文件不存在或不能删除时返回False,而并不引起一个异常。
6.1.4.4 文件名操作Rename :文件更名,以文件变量为操作对象RenameFile :文件更名,参数为文件的原名和新名ChangeFileExt :改变文件扩展名ExpandFileName :返回文件全路径名ExtractFileExt :返回文件扩展名ExtractFileName :从全路径名中返回文件名ExtractFilePath :返回特定文件的路径6.1.4.5 文件属性FileGetAttr :返回文件属性FileSetAttr :设置文件属性6.1.4.6 文件状态FileSize :返回文件对象大小IOResult :返回上一次I/O操作的状态FileExists :检测文件是否存在6.1.4.7 文件日期DateTimeToFileDate :把Delphi日期格式转换为DOS日期格式FileDateToDateTime :把DOS日期格式转换为Delphi日期格式FileGetDate :返回文件的DOS日期时间戳FileSetDate :设置文件的DOS日期时间戳6.1.4.8 文件读写Read,Readln :从文本或记录文件中读取变量Write :将指定变量写入文本或记录文件Writeln :将指定变量写入文本文件并写入一个行结束标志FileRead :从一个指定文件中读取变量FileWrite :向指定文件写入数据FileRead和FileWrite都是以文件句柄为操作对象,主要供系统内部使用。
6.1.4.9 目录操作MkDir :创建当前目录的子目录ChDir :改变当前目录GetDir :返回特定磁盘的当前目录RmDir :删除一个空子目录6.1.4.10 磁盘操作DiskFree :返回磁盘自由空间DiskSize :返回特定磁盘的大小6.1.4.11 文件查找FileSearch :查找目录中是否存在某一特定文件FindFirst :在目录中查找与给定文件名(可以包含匹配符)及属性集相匹配的第一个文件FindNext :返回符合条件的下一个文件FindClose :中止一个FindFirst / FindNext序列有关文件管理标准过程/函数的更详细资料,请查阅Delphi相关的Help主题。