1 / 63

第 6 章 ASP 文件处理

第 6 章 ASP 文件处理. 6.1 FileSystemObject 对象 6.2 读写文件数据 6.3 文件操作 6.4 驱动器操作 6.5 文件夹操作. 学习目标. 介绍了与文件和文件夹处理有关的基本对象,使读者能够灵活地进行文件和文件夹的创建、复制、删除、移动等基本操作,实现以下目标。 了解 ASP 的 FileSystemObject 对象 熟悉 FileSystemObject 对象的基本方法 掌握使用 TextStream 对象对文本文件的写入和读取 掌握 File 对象、 Folder 对象和 Drive 对象的使用.

afra
Download Presentation

第 6 章 ASP 文件处理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章 ASP文件处理 6.1 FileSystemObject对象 6.2 读写文件数据 6.3 文件操作 6.4 驱动器操作 6.5 文件夹操作

  2. 学习目标 • 介绍了与文件和文件夹处理有关的基本对象,使读者能够灵活地进行文件和文件夹的创建、复制、删除、移动等基本操作,实现以下目标。 • 了解ASP的FileSystemObject对象 • 熟悉FileSystemObject对象的基本方法 • 掌握使用TextStream对象对文本文件的写入和读取 • 掌握File对象、Folder对象和Drive对象的使用

  3. 文件存取组件 文件存取组件,可以实现对文本文件的存取,文件和文件夹的复制、移动和删除等操作。 文件存取组件包含多个对象,常用对象如 下: 注意:对文件和文件夹操作时,要注意权限问题。

  4. 6.1 FileSystemObject对象 • FileSystemObject是ASP文件处理组件中的核心对象,使用FileSystemObject对象的相关方法可以获取TextStream对象、File对象、Folder对象以及Drive对象的实例。因此,也可以将这4个对象称作为FileSystemObject对象的子对象或者从属对象。 • 它不仅可以对文件和文件夹进行新建、复制、移动、删除等操作。而且可以建立TextStream、File、Folder和Drive对象. • 该对象的语法为: • Set FileSystem对象实例= Server.CreateObject("Scripting.FileSystemObject") • <% Set fso=Server.CreateObject("Scripting.FileSystemObject") %>

  5. FileSystemObject对象的属性和方法 属性: 它的常用属性只有Drives,它用来返回硬盘上的驱动器对象的集合。 例如 <% Set objsA=fso.Drives %> 方法大致可以分为三部分 分别是关于文件、文件夹和驱动器的属性 ,如下图:

  6. 6.2 读写文件数据 • 文件数据的读和写是通过FileSystemObject对象的子对象TextStream对象来完成的。 • TextStream对象的作用是访问文本文件。 • 使用TextStream对象时,需要要借助FileSystemObject 对象或其附属对象来创建一个 TextStream 对象,然后利用TextStream对象来访问磁盘文件的内容。用于创建或打开一个文本文件并返回TextStram对象的常用方法有三个,如表6-3所示. 表6-3 创建TextStream对象的方法

  7. TextStream对象的属性和方法 1、CreateTextFile()方法 • 语法规则如下 • CreateTextFile( filename,OverWrite, Unicode) • Filename——为文件名 • OverWrite——为是否可覆盖源文件,默认为Flase • Unicode——表示存储格式是否为Unicode格式,默认Flash • 该方法创建一个新文本文件 • 【例ch6\sl_1】编写一段代码,要求在指定文件夹下用CreateTextFile方法创建新的文本文件,如果该文件已经存在,则新创建的文件覆盖该文件。

  8. 2. OpenTextFile方法 • 如果要对已有的文本文件执行读取和追加操作,就要用到FileSystemObject对象的OpenTextFile方法。语法如下: • Set TextStream对象实例=FileSystemObject对象实例.OpenTextFile(filename [,iomode] [, create] [, format]) • 其中,FileName为文件名,IoMode为访问类型,Create为当文件不存在是是否创建该文件,Format为读或写文件时的数据格式。 • 参数FileName可包含绝对或相对路径。 • 参数IoMode说明需要的访问类型 • 其值可以为1即读文件内容、2即写文件内容、8即追加数据,1为默认值。 • 当Create参数设置为True时,如果写入或追加到的该文件不存在,则创建一个该文件。Create的默认值为False。 • 参数Format用于说明读或写文件时的数据格式。其值可以为0即ASCII数据格式、-1即Unicode数据格式、-2即数据使用系统缺省的格式,Format的默认值为0。 • 【例ch6\sl_2】编写一段代码,要求打开例6-1所创建的文件“MyFile.txt”,以备读出其内容。

  9. 3.OpenAsTextStream方法 • OpenAsTextStream方法的语法规则如下: • Set TextStream对象实例=FileSystemObject对象实例.OpenAsTextStream(IoMode,Format) • 其中,IoMode为访问类型,Format为读或写文件时的数据格式。 • 该方法的功能是打开与一个TextStream对象相应的文件,可用于对该文件的读、写或追加。 • 参数IoMode为需要的访问类型,其值可以为1即读文件内容、2即写文件内容、8即追加数据,1为默认值。 • 参数Format用于说明读或写文件时的数据格式。其值可以为0即ASCII数据格式、-1即Unicode数据格式、-2即数据使用系统缺省的格式,Format的默认值为0。 • 需要注意的是,OpenAsTextStream方法不需要FileName参数,因为程序的执行通过引用File对象进行,并且也不需要Create参数,因为该文件必须已存在。 • 【例ch6\sl_3】编写一段代码,要求利用OpenAsTextStream方法打开例1所创建的文件“MyFile.txt”,以备读出其内容。

  10. TextStream对象的属性和方法

  11. 写入无权限提示 • 当你在对文件操作功能的网页进行调试时,无论如何修改程序都不能正确执行,可能是什么原因?产生原因 • 可能对文件夹无写入权限。则首先去掉它的只读属性; • 可能盘符是NTFS文件系统,对everyone系统组无写入权。则要设置Everyone(任何人)具有完全控制权限 • 处理办法 • 我的电脑工具文件夹选项查看去掉“使用简单文件共享(推荐)”默认选择。使得磁盘属性对话框窗口出现“安全”选项卡 • 选择写入文件的盘符或文件夹属性安全everyone组 写入“允许”

  12. 6.2.1 关闭文本文件 • 文本文件使用完成后有必要关闭该文件,关闭文本文件时就要用到TextStream对象的Close方法。Close方法的功能用来关闭打开的TextStream文件并释放资源。 • Close方法 语法规则为: 语法格式:文本流对象.Close()或文件系统对象.Close() • 【例6-4】编写一段代码,要求打开并关闭例6-1所创建的文件“MyFile.txt”。

  13. 6.2.2 写文本文件 • 文本文件的内容写入需要用到TextStream对象的Write、WriteLine及WriteBlankLines三个方法。 (1)Write方法:用于向文件写入指定的字符串,但并不换行。 语法格式:文本流对象. Write(string) (2)WriteLine方法:用于向文件写入一行指定的内容。 • 语法格式:文本流对象.WriteLine(text) (3)WriteBlankLines方法:用于向文件写入指定数目的空行。 • 语法格式:文本流对象.WriteBlankLines (行数n)

  14. 文本文件的基本操作 • 文本文件的操作主要依赖于TextStream对象 • 其实HTML文件本质上也是文本文件,也可以一样操作,只要将扩展名改为.htm即可。 • 【例6-5】编写一段代码,要求打开例6-1所创建的文件“MyFile.txt”,并向该文件中交错写入几行和空行。

  15. 6.2.3读文本文件 • 读取文件时首先也要建立TextStream对象,然后用Read、ReadAll和ReadLine三个方法读取即可,同时需要利用AtEndOfStream属性判断是否已经到达文件结尾。 • TextStream文本流对象的方法 (1)Read:从TextStream文件当前光标的位置读入指定数目的字条并返回结果字条串,其语法规则 • 文本流对象.ReadLine(n) • n:指的是字符数目 (2)ReadAll方法:读取从当前位置到文件尾的全部内容。 语法格式:文本流对象.ReadAll () (3)ReadLine方法:从打开的文件中读取一行数据。 语法格式:文本流对象.ReadLine ()

  16. 例6-6编写一段代码,要求打开文件“MyFile.txt”,读出并在页面上显示出例6-1所创建文件“MyFile.txt”中写入的内容(ch6\SL-6.asp)例6-6编写一段代码,要求打开文件“MyFile.txt”,读出并在页面上显示出例6-1所创建文件“MyFile.txt”中写入的内容(ch6\SL-6.asp)

  17. 新建文本文件同时写入内容示例 eg6-1.asp

  18. 文本文件的读取和追加示例 Eg6-2.asp Eg6-3.asp

  19. 自动生成HTML文件示例 • HTML文件本质上也是文本文件,所以也可以自动创建,只不过需要将HTML代码当作字符串写入到文件中即可。请看具体示例。 Eg6-4.asp

  20. 6.2.4 转向指定位置 • 读取文本文件时,常常需要从指定行或指定行的指定位置开始读取指定数目的字符串,此时就要用到TextStream对象的Skip和SkipLine方法。 • Skip方法的功能是读取 TextStream 文件时跳过指定数目的字符,其语法规则如下: • Skip(numchars) • 其中,参数numchars为需要跳过的字符数。 • SkipLine方法的功能是读取 TextStream 文件时跳过下一行,其语法规则如下: • SkipLine()。 • 【例6-7】编写一段代码,要求打开文件“MyFile.txt”,读出并在页面上显示出例6-1所创建文件“MyFile.txt”中写入的指定行的和指定行的指定位置的内容。

  21. Ch6\sL-7.asp

  22. 6.2.5 TextStream属性应用 • 读取文本文件时,常常需要从判断光标所处的位置,此时就需要查询TextStream对象的一些属性。 • 【例6-8】编写一段代码,要求将文件“MyFile.txt”,当读出例6-5所示文件“MyFile.txt”时,在页面上时刻显示出光标所处的指定位置。

  23. 6.3 文件操作 • 文件和文件夹的基本操作实质上是一致的,都包括新建、复制、移动和删除几项功能,请注意对比两者的语法。 • 文件的复制、移动、删除、检查是否存在及获取文件属性等 • FileSystemObject对象或 File 对象的方法来完成 • FileSystemObject关于文件的几个方法 • CopyFile • MoveFile • DeleteFile • FileExists。

  24. 6.3.1 用FileSystemObject对象操作文件 1、复制文件: • FileSystemObject 对象的CopyFile方法的功能是将一个或多个文件复制到其他位置上,语法规则如下: • CopyFile source,destination[,overwrite] • 其中,参数source 为指定源文件字符串,当要多个文件时,文件名可以用通配符; • destination为指定目标位置的字符串,表示将源文件复制到该位置,不允许使用通配符; • overwrite为可选参数,表明是否覆盖现有文件,如果为True (默认值),则覆盖文件,如果为False,则不覆盖现有文件。 • 需要注意的是,如果将目标位置设置为只读属性时,CopyFile 操作不能进行。同时通配符只能在参数Source的最后一个组成部分中使用。 • 【例6-9】编写一段代码,要求将例6-5所示文件“MyFile.txt”复制到指定文件夹下。

  25. 例6-9 Ch6\sl_9.asp

  26. 2、移动文件 • FileSystemObject 对象的MoveFile方法的功能是将一个或多个文件移动到其他位置上,语法规则如下: • MoveFile source,destination • 其中,参数source为指定源文件字符串,当要多个文件时,文件名可以用通配符;destination为指定目标位置的字符串,表示将源文件移动到该位置,不允许使用通配符。 • 需要注意的是: 1. 如果destination不存在, MoveFile方法将不会进行文件移动; 2. 如果destination是已经存在的文件,将会出现错误; 3. 如果destination是文件夹,将会出现错误; 4. 如果 source 使用通配符但没有匹配的文件时,将会出现错误; 5.在遇到出现的第一个错误时MoveFile 方法停止移动。同时MoveFile 方法不会撤消错误发生前所做的任何更改。 • 【例6-10】编写一段代码,要求将例6-5所示文件“MyFile.txt”移动到指定文件夹下。

  27. 例6-10 Ch6\sl_10.asp

  28. 3、删除文件 • FileSystemObject 对象的DeleteFile方法的功能是将一个或多个指定文件删除掉。其语法规则如下: • DeleteFile filespec[.force] • 其中,参数filespec为指定要删除的文件名,当要删除多个文件时,文件名可以用通配符; • force为可选参数,表明是否删除只读文件,如果为True,则要删除只读文件,如果为False (默认值),则不要删除只读文件。 • 需要注意的是: 1. 如果该方法没有找到匹配文件,将会出现错误; 2. 在遇到出现的第一个错误时停止。DeleteFile方法不会撤消错误发生前所做的任何更改。 • 【例6-11】编写一段代码,要求将例6-5所示文件“MyFile.txt”从指定文件夹下删除掉。

  29. 例6-11 Ch6\sl_11.asp

  30. 文件的复制、移动和删除示例 Ch6\eg6-5.asp

  31. 6.3.2 用File对象操作文件 • File对象又称文件对象,一个文件就是一个File对象。 • 建立File对象的语法如下: Set File对象实例=FileSystemObject对象实例.GetFile(filename) • 其中filename表示文件的完整路径。 • File对象的方法 • Copy:将指定文件从一个位置复制到另一个位置 • Delete:将指定文件删除 • Move:将指定文件从一个位置移动至另一个位置 • OpenAsTextStream:打开指定文件,并返回一个与该文件对应的TextStream对象

  32. 1、复制文件 • File对象的Copy方法的功能是将一个或多个文件复制到其他位置上,语法规则如下: File对象实例.Copy destination [,overwrite] • 其中,destination为指定目标位置的字符串,表示将源文件复制到该位置,不允许使用通配符; • overwrite为可选参数,表明是否覆盖现有文件,如果为True (默认值),则覆盖文件,如果为False,则不覆盖现有文件。 • 【例6-12】编写一段代码,要求将例6-5所示文件“MyFile.txt”复制到指定文件夹下。

  33. 2.移动文件 • File对象的Move方法的功能是将一个或多个文件移动到其他位置上,语法规则如下: • File对象实例.Move(destination) • 其中,参数destination为指定目标位置的字符串,表示将源文件移动到该位置,允许使用通配符。 • 【例6-13】编写一段代码,要求将例6-5所示文件“MyFile.txt”移动到指定文件夹下。

  34. 3. 删除文件 • File对象的Delete方法的功能是将一个或多个指定文件删除掉。其语法规则如下: • File对象实例. Delete[(force)] • 其中,参数force为可选参数,表明是否删除只读文件,如果为True,则要删除只读文件,如果为False (默认值),则不要删除只读文件。 • 需要注意的是: 1. 如果该方法没有找到匹配文件,将会出现错误; 2. 在遇到出现的第一个错误时停止。Delete方法不会撤消错误发生前所做的任何更改。 • 【例6-14】编写一段代码,要求将例6-5所示文件“MyFile.txt”从指定文件夹下删除掉。

  35. 6.3.3 文件的存在性检查 • FileSystemObject 对象的 FileExists方法的功能时检查一个文件是否存在。如果被检测的文件存在,则将返回True值,否则将返回 False值。其语法规则如下: • FileExists(Filespec) • 其中,参数filespec 为检查的一个文件名,表示要确定是否存在的文件。 • 【例6-15】编写一段代码,要求检查例6-5所示文件“MyFile.txt”是否存在,并将检查结果在页面上显示处理。

  36. 6.3.4 文件信息获取 • File 对象的属性用于返回有关指定文件的信息。要获取一个文件的信息,首先要使用 FileSystemObject 对象的GetFile 方法来一个 File 对象,然后用这个File 对象的属性来提取该文件的信息。File 对象的属性如表6-8所示。 • 【例6-16】编写一段代码,要求查看并在页面上显示例6-5所示文件“MyFile.txt”创建日期等信息。

  37. File对象的属性

  38. Ch6\eg6-6.asp

  39. 6.4 驱动器操作 • Drive对象又称驱动器对象,一个驱动器就是一个Drive对象。 • 驱动器的基本操作主要包括判断指定驱动器是否存在、获取指定的驱动器所对应的Drive对象以及获取指定的驱动器的名称等。 • 这些基本操作分别是通过FileSystemObject的方法 • DriveExists • GetDrive • GetDriveName来完成的。 • 建立Drive对象的语法如下: • Set Drive对象实例=FileSystemObject对象实例.GetDrive(drivename) • 其中drivename表示驱动器名称。

  40. 6.4.1 驱动器存在性判断 • FileSystemObject的方法DriveExists的基本功能就是判断指定的驱动器是否存在,如果该驱动器存在则返回True,不存在则返回False。其语法规则如下: • Drive对象实例.DriveExists(drivespec) • 其中,参数drivespec可以是一个驱动器字母,或者是文件、文件夹的完整绝对路径。 【例6-17】编写一段代码,要求查看并在页面上显示本地是否存在“D:”和“H”磁盘驱动器。

  41. 6.4.2 驱动器信息获取 • 本地磁盘驱动器或者网络共享驱动器的文件系统、剩余容量、序列号、卷标名等信息获取是通过Drive 对象的属性来得到的。 • 要想操作 Drive 对象的属性,首先要创建FileSystemObject 对象,利用FileSystemObject 对象的GetDrive方法或者来得到Drive对象。Drive对象的属性如表6-9所示。 • FileSystemObject的方法DriveExists的基本功能就是判断指定的驱动器是否存在,如果该驱动器存在则返回True,不存在则返回False。其语法规则如下: • DriveExists(drivespec) • 其中,参数drivespec可以是一个驱动器字母,或者是文件、文件夹的完整绝对路径。 • 【例6-18】编写一段代码,要求判断D盘是否存在,如果存在则查看并在页面上显示 “D:”磁盘驱动器的总容量等信息。

  42. Ch6\SL-18.asp

  43. 例:利用For Each循环列出所有驱动器的名称,请看具体代码 Ch6\eg6-7.asp

  44. 6.5 文件夹操作 • 文件夹的基本操作主要包括文件夹的创建、文件夹的复制、文件夹的移动、文件夹的删除、检查文件夹是否存在以及获取文件夹的属性等。这些基本操作是通过FileSystemObject 或 Folder对象的方法来完成的。

  45. 6.5.1 用FileSystemObject对象操作文件夹 • FileSystemObject的关于文件夹的几个方法 • CreateFolder、CopyFolder、MoveFolder、DeleteFolder、FolderExists。 1.创建新文件夹: • FileSystemObject 对象的CreateFolder方法的功能是创建一个新文件夹,语法规则如下: • FileSystemObject 对象实例.CreateFolder(foldername) • 其中,参数foldername为待创建的文件夹路径。 • 需要注意的是,如果 foldername 已经存在则将产生错误。 【例6-19】编写一段代码,要求在文件夹“D:\”创建一个新文件夹“myfolder”。

  46. Ch6\SL-19.asp

  47. Ch6\SL-20.asp 2.复制文件夹: • FileSystemObject 对象的CopyFolder方法的功能是将一个或多个文件夹复制到其他位置上,语法规则如下: • FileSystemObject 对象实例. CopyFolder source, destination [,overwrite] • 其中,参数source 为指定源文件夹字符串; • destination为指定目标位置的字符串,表示将源文件夹复制到该位置; • overwrite为可选参数,表明是否覆盖现有文件夹,如果为True (默认值),则覆盖文件夹,如果为False,则不覆盖现有文件夹。 【例6-20】编写一段代码,要求将例6-19所创建的文件夹“myfolder”复制到指定文件夹下。

  48. Ch6\SL-21.asp 3.移动文件夹 • FileSystemObject 对象的MoveFolder方法的功能是将一个或多个文件夹移动到其他位置上,语法规则如下: • FileSystemObject 对象实例. MoveFolder source, destination • 其中,参数source为指定源文件夹字符串,当要多个文件夹时,文件夹名可以用通配符; • destination为指定目标位置的字符串,表示将源文件夹移动到该位置,不允许使用通配符。 【例6-21】编写一段代码,要求将例6-19所创建的文件夹“myfolder”移动到指定文件夹下。

  49. Ch6\SL-22.asp 4.删除文件夹 • FileSystemObject 对象的DeleteFolder方法的功能是将一个或多个指定文件夹删除掉。其语法规则如下: • FileSystemObject 对象实例. DeleteFolder folderspec, force • 其中,参数folderspec为指定要删除的文件夹名,当要删除多个文件夹时,文件夹名可以用通配符; • force为可选参数,表明是否删除只读文件夹,如果为True,则要删除只读文件夹,如果为False (默认值),则不要删除只读文件夹。 【例6-22】编写一段代码,要求将例6-19所创建的文件夹“myfolder”删除掉。

More Related