第 6 章 ASP 文件处理

63
第 6 第 ASP 第第第第 6.1 FileSystemObject 第第 6.2 第第第第第第 6.3 第第第第 6.4 第第第第第 6.5 第第第第第

description

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

Transcript of 第 6 章 ASP 文件处理

Page 1: 第 6 章  ASP 文件处理

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

Page 2: 第 6 章  ASP 文件处理

2

学习目标介绍了与文件和文件夹处理有关的基本对象,使读

者能够灵活地进行文件和文件夹的创建、复制、删除、移动等基本操作,实现以下目标。

了解 ASP的 FileSystemObject 对象熟悉 FileSystemObject 对象的基本方法掌握使用 TextStream 对象对文本文件的写入和读

取掌握 File 对象、 Folder 对象和 Drive 对象的使用

Page 3: 第 6 章  ASP 文件处理

3

文件存取组件文件存取组件

文件存取组件,可以实现对文本文件的存取,文件和文件夹的复制、移动和删除等操作。

文件存取组件包含多个对象,常用对象如 下:

注意:对文件和文件夹操作时,要注意权限问题。

Page 4: 第 6 章  ASP 文件处理

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") %>

Page 5: 第 6 章  ASP 文件处理

5

FileSystemObjectFileSystemObject 对象的属性和方对象的属性和方法法

属性: 它的常用属性只有 Drives ,它用来返回硬盘上的驱动器对象的集

合。例如 <% Set objsA=fso.Drives %>

方法大致可以分为三部分 分别是关于文件、文件夹和驱动器的属性 ,如下图:

Page 6: 第 6 章  ASP 文件处理

6

6.2 读写文件数据

文件数据的读和写是通过 FileSystemObject 对象的子对象TextStream 对象来完成的。

TextStream 对象的作用是访问文本文件。 使用 TextStream 对象时,需要要借助 FileSystemObject 对象或

其附属对象来创建一个 TextStream 对象,然后利用 TextStream对象来访问磁盘文件的内容。用于创建或打开一个文本文件并返回TextStram 对象的常用方法有三个,如表 6-3 所示 .

CreateTextFile 创建一个新文本文件 , 并返回与该文件对应的TextStream 对象

OpenTextFile 打开或创建文本的文件 , 并且返回与该文件对应的TextStream 对象

OpenAsTextStream 打开一个指定的文件并且返回一个 TextStream 对象

表 6-3 创建 TextStream 对象的方法

Page 7: 第 6 章  ASP 文件处理

7

TextStreamTextStream 对象的属性和方法对象的属性和方法

1 、 CreateTextFile() 方法 语法规则如下

CreateTextFile( filename,OverWrite, Unicode)Filename—— 为文件名OverWrite—— 为是否可覆盖源文件,默认为 FlaseUnicode—— 表示存储格式是否为 Unicode 格式,默认 Flash

该方法创建一个新文本文件 【例 ch6\sl_1 】编写一段代码,要求在指定文件夹下用CreateTextFile 方法创建新的文本文件,如果该文件已经存在,则新创建的文件覆盖该文件。

Page 8: 第 6 章  ASP 文件处理

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” ,以备读出其内容。

Page 9: 第 6 章  ASP 文件处理

9

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” ,以备读出其内容。

3.OpenAsTextStream 方法

Page 10: 第 6 章  ASP 文件处理

10

TextStreamTextStream 对象的属性和方法对象的属性和方法

Page 11: 第 6 章  ASP 文件处理

11

写入无权限提示当你在对文件操作功能的网页进行调试时,无论如

何修改程序都不能正确执行,可能是什么原因?产生原因

可能对文件夹无写入权限。则首先去掉它的只读属性; 可能盘符是 NTFS 文件系统,对 everyone 系统组无写入

权。则要设置 Everyone (任何人)具有完全控制权限处理办法

我的电脑工具文件夹选项查看去掉“使用简单文件共享(推荐)”默认选择。使得磁盘属性对话框窗口出现“安全”选项卡

选择写入文件的盘符或文件夹属性安全 everyone组

写入“允许”

Page 12: 第 6 章  ASP 文件处理

12

6.2.1 关闭文本文件

文本文件使用完成后有必要关闭该文件,关闭文本文件时就要用到 TextStream 对象的 Close 方法。 Close 方法的功能用来关闭打开的TextStream 文件并释放资源。

Close 方法 语法规则为: 语法格式:文本流对象 .Close() 或文件系统对象 .Close() 【例 6-4 】编写一段代码,要求打开并关闭例 6-1 所创建的文件“ MyFile.txt” 。

Page 13: 第 6 章  ASP 文件处理

13

6.2.2 写文本文件

文本文件的内容写入需要用到 TextStream 对象的Write、WriteLine及WriteBlankLines 三个方法。( 1 )Write 方法:用于向文件写入指定的字符串,但并

不换行。 语法格式:文本流对象 . Write(string)

( 2 )WriteLine 方法:用于向文件写入一行指定的内容。 语法格式:文本流对象 .WriteLine(text)

( 3 )WriteBlankLines 方法:用于向文件写入指定数目的空行。

语法格式:文本流对象 .WriteBlankLines ( 行数 n)

Page 14: 第 6 章  ASP 文件处理

14

文本文件的基本操作文本文件的操作主要依赖于 TextStream 对象其实 HTML 文件本质上也是文本文件,也可以一样

操作,只要将扩展名改为 .htm 即可。 【例 6-5 】编写一段代码,要求打开例 6-1 所创建的文

件“ MyFile.txt” ,并向该文件中交错写入几行和空行。

Page 15: 第 6 章  ASP 文件处理

15

6.2.3 读文本文件读取文件时首先也要建立 TextStream 对象,然后用Read、 ReadAll和 ReadLine 三个方法读取即可,同时需要利用 AtEndOfStream 属性判断是否已经到达文件结尾。

TextStream 文本流对象的方法( 1 ) Read :从 TextStream 文件当前光标的位置读入指

定数目的字条并返回结果字条串,其语法规则文本流对象 .ReadLine( n)

n:指的是字符数目( 2 ) ReadAll 方法:读取从当前位置到文件尾的全部内容。

语法格式:文本流对象 .ReadAll ()

( 3 ) ReadLine 方法:从打开的文件中读取一行数据。 语法格式:文本流对象 .ReadLine ()

Page 16: 第 6 章  ASP 文件处理

16

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

Page 17: 第 6 章  ASP 文件处理

17

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

Page 18: 第 6 章  ASP 文件处理

18

文本文件的读取和追加示例文本文件的读取和追加示例

Eg6-3.asp

Eg6-2.asp

Page 19: 第 6 章  ASP 文件处理

19

自动生成 HTML 文件示例 HTML 文件本质上也是文本文件,所以也可以自动创建,只不过需要将

HTML 代码当作字符串写入到文件中即可。请看具体示例。

Eg6-4.asp

Page 20: 第 6 章  ASP 文件处理

20

6.2.4 转向指定位置

读取文本文件时,常常需要从指定行或指定行的指定位置开始读取指定数目的字符串,此时就要用到TextStream 对象的 Skip和 SkipLine 方法。

Skip 方法的功能是读取 TextStream 文件时跳过指定数目的字符,其语法规则如下:

Skip(numchars)其中,参数 numchars 为需要跳过的字符数。

SkipLine 方法的功能是读取 TextStream 文件时跳过下一行,其语法规则如下:

SkipLine() 。【例 6-7 】编写一段代码,要求打开文件“ MyFile.txt” ,读出并在页面上显示出例 6-1 所创建文件“ MyFile.txt” 中写入的指定行的和指定行的指定位置的内容。

Page 21: 第 6 章  ASP 文件处理

21

Ch6\sL-7.asp

Page 22: 第 6 章  ASP 文件处理

22

6.2.5 TextStream属性应用读取文本文件时,常常需要从判断光标所处的位置,

此时就需要查询 TextStream 对象的一些属性。 【例 6-8 】编写一段代码,要求将文件“ MyFile.txt” ,

当读出例 6-5 所示文件“ MyFile.txt” 时,在页面上时刻显示出光标所处的指定位置。

Page 23: 第 6 章  ASP 文件处理

23

6.3 文件操作

文件和文件夹的基本操作实质上是一致的,都包括新建、复制、移动和删除几项功能,请注意对比两者的语法。

文件的复制、移动、删除、检查是否存在及获取文件属性等

FileSystemObject 对象或 File 对象的方法来完成FileSystemObject 关于文件的几个方法

CopyFileMoveFileDeleteFileFileExists 。

Page 24: 第 6 章  ASP 文件处理

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” 复制到指定文件夹下。

Page 25: 第 6 章  ASP 文件处理

25

例 6-9Ch6\sl_9.asp

Page 26: 第 6 章  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”

移动到指定文件夹下。

Page 27: 第 6 章  ASP 文件处理

27

例 6-10Ch6\sl_10.asp

Page 28: 第 6 章  ASP 文件处理

28

3 、删除文件 FileSystemObject 对象的 DeleteFile 方法的功能是将一

个或多个指定文件删除掉。其语法规则如下:DeleteFile filespec[.force]

其中,参数 filespec 为指定要删除的文件名,当要删除多个文件时,文件名可以用通配符;

force 为可选参数,表明是否删除只读文件,如果为 True ,则要删除只读文件,如果为 False ( 默认值),则不要删除只读文件。

需要注意的是:1. 如果该方法没有找到匹配文件,将会出现错误;2. 在遇到出现的第一个错误时停止。 DeleteFile 方法不会撤消错误发生前所做的任何更改。

【例 6-11 】编写一段代码,要求将例 6-5 所示文件“ MyFile.txt” 从指定文件夹下删除掉。

Page 29: 第 6 章  ASP 文件处理

29

例 6-11Ch6\sl_11.asp

Page 30: 第 6 章  ASP 文件处理

30

文件的复制、移动和删除示例文件的复制、移动和删除示例

Ch6\eg6-5.asp

Page 31: 第 6 章  ASP 文件处理

31

6.3.2 用 File 对象操作文件File 对象又称文件对象,一个文件就是一个 File 对象。

建立 File 对象的语法如下: Set File 对象实例 =FileSystemObject 对象实例 .GetFile(filename)

其中 filename 表示文件的完整路径。 File 对象的方法

Copy: 将指定文件从一个位置复制到另一个位置Delete :将指定文件删除Move :将指定文件从一个位置移动至另一个位置OpenAsTextStream :打开指定文件,并返回一个与该文件对应的 TextStream 对象

Page 32: 第 6 章  ASP 文件处理

32

1 、复制文件 File 对象的 Copy 方法的功能是将一个或多个文

件复制到其他位置上,语法规则如下:File 对象实例 .Copy destination [,overwrite]

其中, destination 为指定目标位置的字符串,表示将源文件复制到该位置,不允许使用通配符;

overwrite 为可选参数,表明是否覆盖现有文件,如果为 True ( 默认值),则覆盖文件,如果为 False ,则不覆盖现有文件。

【例 6-12 】编写一段代码,要求将例 6-5 所示文件“ MyFile.txt” 复制到指定文件夹下。

Page 33: 第 6 章  ASP 文件处理

33

File 对象的 Move 方法的功能是将一个或多个文件移动到其他位置上,语法规则如下:

File 对象实例 . Move(destination)其中,参数 destination 为指定目标位置的字符串,表示将源文件移动到该位置,允许使用通配符。

【例 6-13 】编写一段代码,要求将例 6-5 所示文件“ MyFile.txt” 移动到指定文件夹下。

2. 移动文件

Page 34: 第 6 章  ASP 文件处理

34

3. 删除文件File 对象的 Delete 方法的功能是将一个或多个指定

文件删除掉。其语法规则如下: File 对象实例 . Delete[(force)]

其中,参数 force 为可选参数,表明是否删除只读文件,如果为 True ,则要删除只读文件,如果为 False ( 默认值),则不要删除只读文件。

需要注意的是:1. 如果该方法没有找到匹配文件,将会出现错误;2. 在遇到出现的第一个错误时停止。 Delete 方法不会撤消错误发生前所做的任何更改。

【例 6-14 】编写一段代码,要求将例 6-5 所示文件“ MyFile.txt” 从指定文件夹下删除掉。

Page 35: 第 6 章  ASP 文件处理

35

6.3.3 文件的存在性检查

FileSystemObject 对象的 FileExists 方法的功能时检查一个文件是否存在。如果被检测的文件存在,则将返回 True 值,否则将返回 False 值。其语法规则如下:

FileExists(Filespec)其中,参数 filespec 为检查的一个文件名,表示要确定是否存在的文件。

【例 6-15 】编写一段代码,要求检查例 6-5 所示文件“ MyFile.txt” 是否存在,并将检查结果在页面上显示处理。

Page 36: 第 6 章  ASP 文件处理

36

6.3.4 文件信息获取

File 对象的属性用于返回有关指定文件的信息。要获取一个文件的信息,首先要使用 FileSystemObject 对象的 GetFile 方法来一个 File 对象,然后用这个 File 对象的属性来提取该文件的信息。 File 对象的属性如表 6-8 所示。

【例 6-16 】编写一段代码,要求查看并在页面上显示例 6-5 所示文件“ MyFile.txt” 创建日期等信息。

Page 37: 第 6 章  ASP 文件处理

37

FileFile 对象的属性对象的属性

Page 38: 第 6 章  ASP 文件处理

38

Ch6\eg6-6.asp

Page 39: 第 6 章  ASP 文件处理

39

6.4 驱动器操作

Drive 对象又称驱动器对象,一个驱动器就是一个Drive 对象。

驱动器的基本操作主要包括判断指定驱动器是否存在、获取指定的驱动器所对应的 Drive 对象以及获取指定的驱动器的名称等。

这些基本操作分别是通过 FileSystemObject 的方法DriveExistsGetDriveGetDriveName 来完成的。

建立 Drive 对象的语法如下: Set Drive 对象实例 =FileSystemObject 对象实例 .GetDrive(drivename)

其中 drivename 表示驱动器名称。

Page 40: 第 6 章  ASP 文件处理

40

6.4.1 驱动器存在性判断FileSystemObject 的方法 DriveExists 的基本功

能就是判断指定的驱动器是否存在,如果该驱动器存在则返回 True ,不存在则返回 False 。其语法规则如下:

Drive 对象实例 .DriveExists(drivespec)其中,参数 drivespec 可以是一个驱动器字母,或者是文件、文件夹的完整绝对路径。

【例 6-17 】编写一段代码,要求查看并在页面上显示本地是否存在“ D :”和“ H” 磁盘驱动器。

Page 41: 第 6 章  ASP 文件处理

41

6.4.2 驱动器信息获取 本地磁盘驱动器或者网络共享驱动器的文件系统、剩余容量、

序列号、卷标名等信息获取是通过 Drive 对象的属性来得到的。

要想操作 Drive 对象的属性,首先要创建 FileSystemObject 对象,利用 FileSystemObject 对象的 GetDrive 方法或者来得到 Drive对象。 Drive 对象的属性如表 6-9 所示。

FileSystemObject 的方法 DriveExists 的基本功能就是判断指定的驱动器是否存在,如果该驱动器存在则返回 True ,不存在则返回False 。其语法规则如下:

DriveExists(drivespec)其中,参数 drivespec 可以是一个驱动器字母,或者是文件、文件夹的

完整绝对路径。【例 6-18 】编写一段代码,要求判断D 盘是否存在,如果存在则查看

并在页面上显示 “ D :”磁盘驱动器的总容量等信息。

Page 42: 第 6 章  ASP 文件处理

42

Page 43: 第 6 章  ASP 文件处理

43

Ch6\SL-18.asp

Page 44: 第 6 章  ASP 文件处理

44

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

Page 45: 第 6 章  ASP 文件处理

45

6.5 文件夹操作

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

Page 46: 第 6 章  ASP 文件处理

46

6.5.1 用 FileSystemObject对象操作文件夹

FileSystemObject 的关于文件夹的几个方法 CreateFolder、 CopyFolder、MoveFolder、 DeleteFolder、 FolderExists 。

1. 创建新文件夹: FileSystemObject 对象的 CreateFolder 方法的功能是

创建一个新文件夹,语法规则如下:FileSystemObject 对象实例 .CreateFolder(foldername)

其中,参数 foldername 为待创建的文件夹路径。需要注意的是,如果 foldername 已经存在则将产生错误。

【例 6-19 】编写一段代码,要求在文件夹“ D:\” 创建一个新文件夹“ myfolder” 。

Page 47: 第 6 章  ASP 文件处理

47

Ch6\SL-19.asp

Page 48: 第 6 章  ASP 文件处理

48

2. 复制文件夹: FileSystemObject 对象的 CopyFolder 方法的功能是将

一个或多个文件夹复制到其他位置上,语法规则如下:FileSystemObject 对象实例 . CopyFolder source, destination [,overwrite]

其中,参数 source 为指定源文件夹字符串;destination 为指定目标位置的字符串,表示将源文件夹复制到

该位置;overwrite 为可选参数,表明是否覆盖现有文件夹,如果为True ( 默认值),则覆盖文件夹,如果为 False ,则不覆盖现有文件夹。

【例 6-20 】编写一段代码,要求将例 6-19 所创建的文件夹“ myfolder” 复制到指定文件夹下。

Ch6\SL-20.asp

Page 49: 第 6 章  ASP 文件处理

49

3. 移动文件夹 FileSystemObject 对象的 MoveFolder 方法的功能是将

一个或多个文件夹移动到其他位置上,语法规则如下:FileSystemObject 对象实例 . MoveFolder source, destination

其中,参数 source 为指定源文件夹字符串,当要多个文件夹时,文件夹名可以用通配符;

destination 为指定目标位置的字符串,表示将源文件夹移动到该位置,不允许使用通配符。

【例 6-21 】编写一段代码,要求将例 6-19 所创建的文件夹“ myfolder” 移动到指定文件夹下。

Ch6\SL-21.asp

Page 50: 第 6 章  ASP 文件处理

50

4. 删除文件夹 FileSystemObject 对象的 DeleteFolder 方法的功能是

将一个或多个指定文件夹删除掉。其语法规则如下:FileSystemObject 对象实例 . DeleteFolder folderspec, force

其中,参数 folderspec 为指定要删除的文件夹名,当要删除多个文件夹时,文件夹名可以用通配符;

force 为可选参数,表明是否删除只读文件夹,如果为 True ,则要删除只读文件夹,如果为 False ( 默认值),则不要删除只读文件夹。

【例 6-22 】编写一段代码,要求将例 6-19 所创建的文件夹“ myfolder” 删除掉。

Ch6\SL-22.asp

Page 51: 第 6 章  ASP 文件处理

51

文件夹的新建、复制、移动和删除 示例文件夹的新建、复制、移动和删除 示例

Ch6\eg6-8.asp

Page 52: 第 6 章  ASP 文件处理

52

6.5.3 文件夹的存在性检查

FileSystemObject 对象的 FolderExists 方法的功能时检查一个文件夹是否存在。如果被检测的文件夹存在,则将返回 True 值,否则将返回 False 值。其语法规则如下:

FileSystemObject 对象实例 . FolderExists(Folderspec)其中,参数 folderspec 为检查的一个文件夹名,表示要确定是否存在的文件夹。

【例 6-26 】编写一段代码,要求检查例 6-19 所创建的文件夹“ myfolder” 是否存在,并将检查结果在页面上显示处理。

Ch6\SL-26.asp

Page 53: 第 6 章  ASP 文件处理

53

6.5.2 用 Folder对象操作文件夹

Folder 对象又称文件夹对象,一个文件夹就是一个 Folder 对象。 文件夹对象的方法有

Copy :将这个文件夹及所有的内容复制到指定的文件夹Delete :删除文件夹及里面的所有内容Move :将文件夹及里面的所有内容移动到指定的文件夹CreaeteTextFile :在文件夹内创建一个新的文件,并且返回一个与其对应的 TextStream 对象

建立 Folder 对象的语法如下:Set Folder 对象实例 =FileSystemObject 对象实例 .GetFolder(foldername)

其中 foldername 表示文件夹的完整路径

Page 54: 第 6 章  ASP 文件处理

54

6.5.2 用 Folder对象操作文件夹

1 、复制文件夹: Folder 对象的 Copy 方法的功能是将一个或多个文件夹复

制到其他位置上,语法规则如下:Folder 对象实例 .Copy(destination,overwrite)

其中, destination 为指定目标位置的字符串,表示将源文件夹复制到该位置,不允许使用通配符;

overwrite 为可选参数,表明是否覆盖现有文件夹,如果为True ( 默认值),则覆盖文件夹,如果为 False ,则不覆盖现有文件夹。

【例 6-23 】编写一段代码,要求将例 6-19 所创建的文件夹“ myfolder” 复制到指定文件夹夹下。

Ch6\SL-23.asp

Page 55: 第 6 章  ASP 文件处理

55

2. 移动文件夹 Folder 对象的 Move 方法的功能是将一个或多个文件夹

移动到其他位置上,语法规则如下:Folder 对象实例 . Move(destination)

其中,参数 destination 为指定目标位置的字符串,表示将源文件夹移动到该位置,允许使用通配符。

需要注意的是,如果目标文件夹已经存在,将会出错。

【例 6-24 】编写一段代码,要求将例 6-19 所创建的文件夹“ myfolder” 移动到指定文件夹夹下。

Ch6\SL-24.asp

Page 56: 第 6 章  ASP 文件处理

56

3. 删除文件夹 Folder 对象的 Delete 方法的功能是将一个或多个指定文

件夹删除掉。其语法规则如下:Folder 对象实例 . Delete[force]

其中,参数 force 为可选参数,表明是否删除只读文件夹,如果为 True ,即使文件夹设置为只读或含有只读的文件,也将删除该文件夹,如果为 False ( 默认值),则不要删除文件夹。

【例 6-25 】编写一段代码,要求将例 6-19 所创建的文件夹“ myfolder” 从指定文件夹夹下删除掉。

Ch6\SL-25.asp

Page 57: 第 6 章  ASP 文件处理

57

6.5.4 文件夹信息获取

Folder 对象的属性用于返回有关指定文件夹的信息。要 获 取 一 个 文 件 夹 的 信 息 , 首 先 要 使 用 FileSystemObject 对象的 GetFolder 方法来一个 Folder 对象,然后用这个 Folder 对象的属性来提取该文件夹的信息。 Folder 对象的属性如表 6-11 所示。

Page 58: 第 6 章  ASP 文件处理

58

表 6-11 Folder 对象的属性属 性 说 明 示 例Name 读 /写。设置或返回文件夹的名字 Stra=fld.name

Attributes 返回文件夹的属性 ,0 为普通、 1 为只读、 2 为隐藏、 4 为系统、 16 为文件夹。各个属性是相加的关系。如一个隐藏的只读文件夹,值为 3

intA=fld.Attributes

DateCreated 只读。返回该文件夹的创建日期和时间 dtmA=fld.DateCreated

DateLastAccessed

只读。返回最后一次访问该文件夹的日期和时间 dtmA=fld.DateLastAccessed

DateLastModified 只读。返回最后一次修改该文件夹的日期和时间 dtmA=fld.DateLastModifi

ed

Drive 只读。返回文件夹所在驱动器对应的 Drive 对象 Set drv=fld.Drive

Files只读。返回文件夹中所有的文件,实际上返回一个由 file 对象组成的集合。

Set objsA=fld.files

IsRootFolder 只读。返回一个布尔值说明文件夹是否是当前驱动器的根文件夹。

binA=fld.IsRootFolder

ParentFolder 只读。返回文件夹的父文件夹对应的 Folder 对象 Set

fdpar=fld.ParentFolder

Path 只读。返回该文件夹的绝对路径 strA=fld.Path

Size 只读。返回指定文件夹及包含所有文件和文件夹的大小

intA=fld.size

SubFloders 只读。返回文件夹中所有的子文件夹,实际上返回一个由 Folder 对象组成的集合。

Set ObjsA=fld.SubFolders

Type 只读。如果可能,返回文件夹类型的说明字符串 strA=fld.Type

Page 59: 第 6 章  ASP 文件处理

59

【例 6-27 】编写一段代码,要求查看并在页面上显示例 6-19 所创建的文件夹“ myfolder” 创建日期等信息。

Ch6\SL-27.asp

Page 60: 第 6 章  ASP 文件处理

60

例:Ch6\eg6-9.asp

END

Page 61: 第 6 章  ASP 文件处理

61

当你在对文件夹 ASPLX 中具有文件操作功能的网页进行调试时,无论如何修改程序都不能正确执行,可能是什么原因?

可能是因为没有对 ASPLX 文件夹的写权限。设置如下:首先去掉它的只读属性。对于 Windows 2000或Windows XP 系统,如果安装时采用了 NTFS文件系统,一般可以设置它为 EveryOne (任何人)可以完全控制。

什么时候用 FileSystemObject 对象,什么时候用 File 对象和 Folder 对象?

一般而言,在新建、复制、移动、删除文件和文件夹时,用FileSystemObject 对象,而 File 对象用来显示文件自身的各种信息;Folder 对象用来显示文件夹的各种信息。

文本文件中的换行符(回车)会自动在浏览器中呈现换行效果吗? 不会,因此在读取时,要用 <br> 来输出换行效果。

如果希望修改一个文件的名字,请思考都有什么方法? 可以利用复制和删除来实现,先复制为新的名字,然后删除旧的。

如果希望创建一个新的文本文件,请思考都有什么方法? 可以利用 FileSystemObject 对象的 CreateTextFile 方法来创建。

Page 62: 第 6 章  ASP 文件处理

62

用文件系统对象在网页相同目录下创建一个名为 test.bat 的文件,并写入以下内容:

@echo offecho 利用文件系统对象进行的写文件测试echo echo 按任意键继续pause>nulsmartdrvdir c:/pcloseecho on

编写一个 ASP 页面,实现读取并显示 test.bat 文件中的内容

Page 63: 第 6 章  ASP 文件处理

63

习题和实验完成实验六要求完成网上作业

实验习题 2 代码