逆袭学霸   发表于 2016-05-08 08:49:42

收藏 560 3

FileSystemObject 对象模型

在为 Active Server Pages、Windows s cripting Host、或其他可以使用 s cripting 的应用程序写脚本时,在 Web 服务器上添加、移动、改变、创建或删除文件夹(目录)和文件通常是很重要的。获得有关信息和操作连接在 Web 服务器上的驱动器也可能是必要的。

s cripting 允许用 FileSystemObject (FSO) 对象模式来处理驱动器、文件夹和文件,在下面的章节中将解释该对象模式:

FileSystemObject 和 s cripting 运行时库参考的介绍

FileSystemObject (FSO) 对象模式,允许对大量的属性、方法和事件,使用较熟悉的 object.method 语法,来处理文件夹和文件。

使用这个基于对象的工具和:

  • HTML 来创建 Web 页

  • Windows s cripting Host 来为 Microsoft Windows 创建批文件

  • s cript Control 来对用其他语言开发的应用程序提供编辑脚本的能力

因为在客户端使用 FSO 而引起重要的安全性问题,提供潜在地不受欢迎的对客户端本地文件系统的访问,假定本文档使用 FSO 对象模式,来创建由服务器端的 Internet Web 页执行的脚本。因为使用了服务器端,Internet Explorer 默认安全设置不允许客户端使用 FileSystemObject 对象。覆盖那些默认值可能会引起在本地计算机上不受欢迎的对其文件系统的访问,从而导致文件系统完整性的全部破坏,同时引起数据遗失或更糟的情况。

FSO 对象模式使服务器端的应用程序能创建、改变、移动和删除文件夹,或探测特定的文件夹是否存在,若存在,还可以找出有关文件夹的信息,如名称、被创建或最后一次修改的日期,等等。

FSO 对象模式还使文件处理变得很容易。在处理文件时,主要的目标是以易于访问的格式把数据存储在有效的空间和资源中。这就要求能够创建文件,插入和改变数据,以及输出(读取)数据。因为把数据存储在数据库中,如 Access 或 SQL 服务器,会给应用程序增加很大的开销,所以把数据存储在二进制或文本文件中可能是最有效的解决方案。可能不希望有该开销,或者数据访问要求可能不需要与功能完备的数据库相关联的所有额外功能。

包含在 s cripting 类型库 (Scrrun.dll) 中的 FSO 对象模式,支持通过 TextStream 对象来创建和操作文本文件。虽然还不支持二进制文件的创建或操作,但计划将来要支持二进制文件。

FileSystemObject 对象

FileSystemObject(FSO) 对象模式包含下面的对象和集合。

对象/集合描述
FileSystemObject主对象。包含用来创建、删除和获得有关信息,以及通常用来操作驱动器、文件夹和文件的方法和属性。和该对象相关联的许多方法,与其他 FSO 对象中的方法完全相似;它们是为了方便才被提供的。
Drive对象。包含用来收集信息的方法和属性,这些信息是关于连接在系统上的驱动器的,如驱动器的共享名和它有多少可用空间。请注意,"drive" 并非必须是硬盘,也可以是 CD-ROM 驱动器,RAM 磁盘等等。并非必须把驱动器实物地连接到系统上;它也可以通过网络在逻辑上被连接起来。
Drives集合。提供驱动器的列表,这些驱动器实物地或在逻辑上与系统相连接。Drives 集合包括所有驱动器,与类型无关。要可移动的媒体驱动器在该集合中显现,不必把媒体插入到驱动器中。
File对象。包含用来创建、删除或移动文件的方法和属性。也用来向系统询问文件名、路径和多种其他属性。
Files集合。提供包含在文件夹内的所有文件的列表。
Folder对象。包含用来创建、删除或移动文件夹的方法和属性。也用来向系统询问文件夹名、路径和多种其他属性。
Folders集合。提供在 Folder 内的所有文件夹的列表。
TextStream对象。用来读写文本文件。

设计 FileSystemObject

要用 FileSystemObject (FSO) 对象模式来编程,则:

  • 使用 CreateObject 方法来创建 FileSystemObject 对象。

  • 在新创建的对象上使用适当的方法。

  • 访问对象的属性。

FSO 对象模式包含在 s cripting 类型库中,该库位于 Scrrun.dll 文件中。因而,要使用 FSO 对象模式,必须把 Scrrun.dll 放在 Web 服务器的适当系统目录中。

创建 FileSystemObject 对象

首先,使用 CreateObject 对象来创建 FileSystemObject 对象, 在 VBs cript 中,使用下面的代码来创建 FileSystemObject 的一个实例:

Dim fso
Set fso = CreateObject("s cripting.FileSystemObject")

  示例代码示范了如何创建 FileSystemObject 的一个实例。

在 Js cript 中,使用下面的代码来做同样的事情:

var fso;
fso = new ActiveXObject("s cripting.FileSystemObject");

在这两个示例中,s cripting 是类型库的名字,而 FileSystemObject 则是想要创建的对象的名字。可以只创建 FileSystemObject 对象的一个实例,而不管试图创建另一个实例的次数。

使用适当的方法

其次,使用 FileSystemObject 对象的适当方法。例如,要创建一个新的对象,则使用 CreateTextFileCreateFolder (FSO 对象模式不支持驱动器的创建或删除)。

要删除对象,则使用 FileSystemObject 对象的 DeleteFileDeleteFolder 方法,或 FileFolder 对象的 Delete 方法。也可以使用适当的方法,来复制和移动文件与文件夹。

注意   FileSystemObject 对象模式中的某些功能是多余的。例如,可以用 FileSystemObject 对象的 CopyFile 方法,也可以用 File 对象的 Copy 方法来复制文件。这两种方法功能是相同的;两种方法都能使编程灵活。

访问现有驱动器、文件和文件夹

要访问现有驱动器、文件或文件夹,则使用 FileSystemObject 对象中的适当的 "get" 方法:

  • GetDrive

  • GetFolder

  • GetFile

在 VBs cript 中要访问现有文件:

Dim fso, f1
Set fso = CreateObject("s cripting.FileSystemObject")
Set f1 = fso.GetFile("c:test.txt")

在 Js cript 中要做同样的事情,则使用下面的代码:

var fso, f1;
fso = new ActiveXObject("s cripting.FileSystemObject");
f1 = fso.GetFile("c:\test.txt");

不要对新创建的对象使用 "get" 方法,因为 "create" 函数已经返回那个对象的一个句柄。例如,如果使用 CreateFolder 方法创建了一个新的文件夹,则不要使用 GetFolder 方法来访问它的属性,如 NamePathSize等等。只需设一个变量给 CreateFolder 函数,来获得新创建文件夹的句柄名,然后访问它的属性、方法和事件。要在 VBs cript 中这样做,则使用下面的代码:

Sub CreateFolder   Dim fso, fldr   Set fso = CreateObject("s cripting.FileSystemObject")   Set fldr = fso.CreateFolder("C:MyTest")   Response.Write "Created folder: " & fldr.NameEnd Sub

在 Js cript 中给 CreateFolder 函数设置一个变量,则使用下面的语法:

function CreateFolder()
{   var fso, fldr;   fso = new ActiveXObject("s cripting.FileSystemObject");   fldr = fso.CreateFolder("C:\MyTest");   Response.Write("Created folder: " + fldr.Name);}

访问对象的属性

一旦有了对象的句柄,就可以访问它的属性。例如,要获得特定文件夹的名字,首先创建该对象的一个实例,然后用适当的方法获得它的句柄(在这个例子中是 GetFolder 方法,因为该文件夹已经存在了)。

在 VBs cript 中,用该代码来获得 GetFolder 方法的一个句柄:

Set fldr = fso.GetFolder("c:")

在 Js cript 中要做同样的事情,则使用下面的代码:

var fldr = fso.GetFolder("c:\");

现在,已经有了 Folder 对象的句柄,就可以检查它的 Name 属性了。在 VBs cript 中使用下面的代码来检查:

Response.Write "Folder name is: " & fldr.Name

在 Js cript 中要检查 Name 属性,则使用下面的语法:

Response.Write("Folder name is: " + fldr.Name);

要找出最后一次修改文件的时间,则使用下面的 VBs cript 语法:

Dim fso, f1
Set fso = CreateObject("s cripting.FileSystemObject")
' 获得要查询的文件对象。Set f1 = fso.GetFile("c:detlog.txt")   ' 打印信息。Response.Write "File last modified: " & f1.DateLastModified

要用 Js cript 找出上一次修改的文件,则使用下面的代码:

var fso, f1;
fso = new ActiveXObject("s cripting.FileSystemObject");
// 获得要查询的文件对象。f1 = fso.GetFile("c:\detlog.txt");   // 打印信息。Response.Write("File last modified: " + f1.DateLastModified);


此帖被虚星太岁 于2017年05月23日 22:02 进行了推荐操作
全部回复共3条
电梯直达
我要回复
加载中...
关闭
关闭
在线
咨询
QQ
交流群
App
下载
返回
顶部