FSO系列之二**设计 FileSystemObject

filesystemobject|fso|设计

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

    使用 CreateObject 方法来创建 FileSystemObject 对象。
    在新创建的对象上使用适当的方法。
    访问对象的属性。
FSO 对象模式包含在 Scripting 类型库中,该库位于 Scrrun.dll 文件中。因而,要使用 FSO 对象模式,必须把 Scrrun.dll 放在 Web 服务器的适当系统目录中。

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

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

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

var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");

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

使用适当的方法
其次,使用 FileSystemObject 对象的适当方法。例如,要创建一个新的对象,则使用 CreateTextFile 或 CreateFolder (FSO 对象模式不支持驱动器的创建或删除)。
要删除对象,则使用 FileSystemObject 对象的 DeleteFile 和 DeleteFolder 方法,或 File 和 Folder 对象的 Delete 方法。也可以使用适当的方法,来复制和移动文件与文件夹。

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

------------------------------------------------------------

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

GetDrive
GetFolder
GetFile
在 VBScript 中要访问现有文件:

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

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

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

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

Sub CreateFolder
  Dim fso, fldr
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set fldr = fso.CreateFolder("C:\MyTest")
  Response.Write "Created folder: " & fldr.Name
End Sub

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

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

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

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

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

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

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

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

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

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

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

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

在 JScript 中要找出同样的事情,则使用下面的代码:

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

时间: 2024-08-31 02:04:47

FSO系列之二**设计 FileSystemObject的相关文章

FSO系列之二**FileSystemObject 常数

filesystemobject|fso|常数 FileSystemObject 具有若干可以在程序代码中使用的有价值的常数.常数的好处在于:我们可以方便地使用某些值而无需记住其具体数值.如果常数的值可能发生变化,常数还使程序具有更好的可维护性.在某些 Scripting 主机上,这些常数已经定义好了.在这种情况下,在代码中需要数值的地方直接使用常数就可以了.不过,如果 SCRRUN.DLL 没有被 Scripting 主机显式地引用,那么在使用常数之前需要先进行定义.这种情况的例子包括Micr

Silverlight & Blend动画设计系列十二

Silverlight & Blend动画设计系列十二:三角函数(Trigonometry)动画之自由旋转(Free-form rotation) 说到对象的旋转,或许就会联想到对象角度的概念.对象的旋转实现实际上就是利用对象 的角度改变来实现的位置变换,在<Silverlight & Blend动画设计系列二:旋转动画( RotateTransform)>一文中有对对象的不同角度变换的实现介绍,本篇要介绍的自由旋转( Free-form rotation)将借助<Fun

【Qt编程】基于Qt的词典开发系列&amp;lt;二&amp;gt;--本地词典的设计

我设计的词典不仅可以实现在线查单词,而且一个重大特色就是具有丰富的本地词典库:我默认加入了八个类型的词典,如下所示: 由于是本人是通信专业,因此加入了华为通信词典.电子工程词典,又由于我喜爱编程,也加入了c语言基本函数词典.下面介绍如何设计本地词典: 词典类型的选择         当然是txt格式的最好了,因为我们可以用程序直接进行读取.可是网上词典一般都是用mdx格式.ld2格式的,我无法用Qt来直接读取.最终,经过不断摸索,网上查找,发现我们可以将mdx格式的词典通过软件转化为txt格式的

Silverlight3系列(二)Silverlight3+wcf+在不使用证书的情况下自定义用户名

Silverlight3系列(二)Silverlight3+wcf+在不使用证书的情况下自定义用户名密码验证 先说一下我的需求. 系统需求: 系统是一个电子商务平台,可以提供信息的展示,购买和交易(交易将来考虑).其实和淘宝是一样的,区别就是淘宝是一个综合类的,什么产品都上的,我们是一个行业性的,垂直的. 技术选型: Silverlight3 WCF MS SQL 功能需求: 客户端可以直接通过http访问,不需要使用https,而且也不需要安装证书.我们的wcf服务不想直接暴露在Interne

人工“碳”索意犹尽,智能“硅”来未可知(深度学习入门系列之二)

系列文章:一入侯门"深"似海,深度学习深几许(入门系列之一) 在前面的小节中,我们仅仅泛泛而谈了机器学习.深度学习等概念,在这一小节,我们将给出它的更加准确的形式化描述. 我们经常听到人工智能如何如何?深度学习怎样怎样?那么它们之间有什么关系呢?在本小节,我们首先从宏观上谈谈人工智能的"江湖定位"和深度学习的归属.然后再在微观上聊聊机器学习的数学本质是什么?以及我们为什么要用神经网络? 2.1 人工智能的"江湖定位" 宏观上来看, 人类科学和技术

.NET 4 并行(多核)编程系列之二 从Task开始

原文:.NET 4 并行(多核)编程系列之二 从Task开始 .NET 4 并行(多核)编程系列之二 从Task开始          前言:我们一步步的从简单的开始讲述,还是沿用我一直的方式:慢慢演化,步步为营.     本篇文章的议题如下:    1.Task基础介绍    2.Task的创建     3.获取Task的执行结果 4. 补充细节   系列文章链接: .NET 4 并行(多核)编程系列之一入门介绍 .NET 4 并行(多核)编程系列之二 从Task开始  .NET 4 并行(多

Docker生态系统系列之二:容器化综述

本文讲的是Docker生态系统系列之二:容器化综述,[编者的话]本篇文章是介绍Docker生态系统的第二篇,该文章首先简要介绍了Linux容器化的历史,然后介绍容器化的优点,再讨论Dockerfile的优点,最后讨论了容器化应用的架构. 应用的迁移部署是一件非常复杂的事情.我们不仅要针对每个环境单独调整,可能还会面临其它的问题,比如检查依赖.扩展应用.在不影响整体应用的情况下单独更新组件. Docker容器化的思想和面向服务式的设计模式试图解决这些问题.应用程序可以拆分为可管理的且按功能划分的组

站内优化系列教程二:网站头部和底部优化

前面给大家讲了<站内优化系列教程一:导航优化和结构优化>和<站内优化系列教程二:URL和网站地图优化>两课,今天讲第三课<站内优化系列教程二:网站头部和底部优化>.给网站做站优化最基本的目的就是为了提高网站的排名,相对来说这也是大部分站长优化的主要目的,毕竟如果网站排名不靠前,自然就无法从搜索引挚获取大量的流量,而对于网站运营.提高网站知名度.打造网站特有的品牌则是难之又难.回归正题,大部分站长做网站优化都是特别的重视站外优化,而忽视站内的基本优化,其实最基本的提高用户

站内优化系列教程二:URL和网站地图优化

前面说了<站内优化系列教程一:导航与结构的优化>,今天说第二课<站内优化系列教程二:URL和网站地图优化>.网站优化中影响最直接的就是网站URL,也就是网站网址.一般站长都会认为静态的网址对于收录和排名都非常的友好.而动态和伪静态则是以次类推.其实这种想法大部分都出现在对搜索引挚识别能力不够了解的基础上的,如果大家不信,可以看看百度知道的URL,其用的最多的还是动态的URL,所以,对于静态的收录排名比动态的好这种说法并不成立,百度知道就是一个很明显的例子.而对于蜘蛛爬行网站,则有地