文档详情

perl编程_10 文件与目录.PDF

发布:2017-08-30约1.71万字共13页下载文档
文本预览下载声明
下载 第1 0学时 文件与目录 操作系统中的文件为数据提供了一个非常方便的存储方式。操作系统为数据提供了一个 名字(即文件名)和一个组织结构,这样你就可以在以后找到你要的数据。这个组织结构称 为文件系统。然后你的文件系统再将文件分成各个组,称为目录,有时也称为文件夹。这些 目录能够存放文件或其他目录。 在目录中嵌套目录的方法给计算机中的文件系统提供了一个树状结构。每个文件都是一 个目录的组成部分,每个目录又是父目录的组成部分。除为你的文件提供一个组织结构外, 操作系统还存放了关于文件的各种数据,比如上次读取文件是在什么时候,上次修改文件是 在什么时候,谁创建了文件,当前文件有多大等等。所有的现代计算机操作系统几乎都采用 这种组织结构。 在M a c i n t o s h 系统中,仍然采用这种结构,不过它的高层目录称为卷,子目录称为文件 夹。 P e r l允许你访问这个组织结构,修改它的组织方法,并可查看关于文件的各种信息。 P e r l 用于这些操作的函数全部源自 u n i x操作系统,但是在 P e r l运行的任何操作系统下,这些函数都 能够很好地运行。P e r l 的文件系统的操作函数是可以移植的,也就是说,如果你使用 P e r l 的函 数对你的文件进行操作并查询你的文件,那么在 P e r l支持的任何操作系统下,运行你的代码都 是没有问题的,只要目录结构相类似。 在本学时中,你将要学习: • 如何获得目录列表。 • 如何创建和删除文件。 • 如何创建和删除目录。 • 如何获取关于文件的信息。 10.1 获得目录列表 从系统中获取目录信息的第一步是创建一个目录句柄。目录句柄与文件句柄相类似,不 同之处是:不是通过读取文件句柄来获得文件的内容,而是使用目录句柄来读取目录的内容。 若要打开目录句柄,可以使用 o p e n d i r 函数: 在这个语句中,d i r h a n d l e是要打开的目录句柄, d i r e c t o r y是要读取的目录的名字。要是目 录句柄不能打开,你就无权读取该目录的内容,或者该目录根本不存在。 o p e n d i r 函数将返回 假。目录句柄的结构应该与文件句柄相类似,它使用第 2 学时介绍的变量名的创建规则,目录 句柄应该全部使用大写字母,以避免与 P e r l 的关键字发生冲突。下面是目录句柄的一个例子: 本学时中介绍的所有例子都使用 U N I X样式中的正斜杠,因为与反斜杠相比,它不易产生 混乱,并且它可以同时用于U N I X和Wi n d o w s操作系统。 114使用第二部分 高 级 特 性 下载 目录句柄打开后,可以使用r e a d d i r 函数来读取它的内容: 在标量上下文中, r e a d d i r 函数返回目录中的下一项,如果目录中没有剩下任何项目,则 返回u n d e f 。在列表上下文中,r e a d d i r返回所有的(剩余的)目录项。 r e a d d i r 返回的名字包括 文件、目录的名字,而对于U N I X来说,则返回特殊文件的名字。它们返回时没有特定的次序。 r e a d d i r返回目录项 .和. . 。r e a d d i r返回的目录项不包含作为目录名的组成部分的路径名。 当完成目录句柄的操作后,应该使用 c l o s e d i r 函数将它关闭: 下面这个例子说明如何读取一个目录: 在上面这个代码段中,整个目录被读入 @ F I L E S 中。不过,在大多数时候,你对 .和. .文件 是不感兴趣的。若要读取文件句柄并清除这些文件,可以输入下面的代码: 正则表达式(/ ^ \ . \ . ? $ / )用于匹配也位于行尾的一个前导原义圆点(或两个圆点),而g r e p 则用于清除它们。若要获得带有特定扩展名的全部文件,可以使用下面的代码: r e a d d i r返回的文件名并不包含 o p e n d i r使用的路径名。因此,下面的例子可能无法运行: 除非你在运行代码时恰好在 / t m p 目录中工作,否则o p e n ( F I L E H ,$ f i l e )语句的运行将会失
显示全部
相似文档