Scripting.FileSystemObject对象的详细技巧指南

FileSystemObject对象提供对计算机文件系统的访问:

powered by 25175.net

在代码内操作文本文件、文件夹及驱动器。它是脚本运行期库提供的对象之一,对于服务器ASP页面内的VBScript和JScript都有效。如果页面的扩展名为.hta(表示它们是HTA的一部分),它也可用在客户端的IE 5中。本节仅讨论在服务器上的ASP脚本如何使用FileSystemObject对象。

       超级文本应用程序(HTA)由指定的“受信任的”页面组成,在页面的<HEAD>段里包含<HTA: APPLICATION>元素。例如:

    <HTA:APPLICATION ID=”objMyApp” APPLICATIONNAME=”myApp”>

这些页面可以使用客户端脚本引擎中的一些不常用特性,这些特性中有FileSystemObject对象和TextStream对象。关于超级文本应用程序的更多信息,请访问Microsoft Workshop网站。

可以使用下面的程序创建一个FileSystemObject对象实例:

‘ In VBScript:

Dim objMyFSO

Set objMyFSO = Server.CreateObject(“Scripting.FileSystemObject”)



// In JScript:

var objMyFSO = Server.CreateObject(‘Scripting.FileSystemObject’);



<!-- Server-side with an OBJECT element -->

<OBJECT RUNAT=”SERVER” SCOPE=”PAGE” ID=”objFSO”

              PROGID=”Scripting.FileSystemObject”>

</OBJECT>

在ASP页面里,增加一个对于FileSystemObject类型库的引用是非常有用的。这允许使用它直接定义的内置常数,不用像过去那样用数字等效表达式代替。整个脚本运行期库的类型库可以增加到任何ASP页面中,代码如下:

<!-- METADATA TYPE=”typelib” FILE=”C:WinNTSystem32scrrun.dll” -->如果你是在另一个目录下安装Windows,必须编辑FILE的属性值。

5.4.1 FileSystemObject对象成员概要

       FileSystemObject对象提供一个属性和一系列方法,可用它们来操纵FileSystemObject对象实现的一些从属对象。这里提供了全部的内容概要,然后介绍每一个从属对象。

1.  FileSystemObject的属性

FileSystemObject对象只有一个属性,它用于得到当前机器上的所有有效驱动器的列表,如表5-4所示:

表5-4  FileSystemObject对象的属性及说明

属 性 

说 明 



Drivers 

返回本地计算机可用的驱动器列表。 



2.  FileSystemObject的方法

FileSystemObject对象提供了使用从属对象的一系列方法,从属对象包括Drive、Folder和File等对象。它也实现了用于TextStream对象的两个方法:CreateTextFile和OpenTextFile。根据所使用的对象的类型,将方法划分为三类。

(1)    与驱动器有关的方法

与驱动器有关的方法如表5-5所示:

表5-5 与驱动器有关的方法及说明

方 法 

说 明 



DriveExists(drivespec) 

如果在drivespec中指定的驱动器存在,则返回True,否则返回False。drivespec参数可以是一个驱动器字母,或者是文件、文件夹的完整绝对路径 



GetDrive(drivespec) 

返回drivespec指定的驱动器所对应的Drive对象。drivespec可以包含冒号、路径分隔符或者是网络共享名,即:“C”、“C:”、“C:”及“\machinesharename” 



GetDriveName(drivespec) 

用字符串返回drivespec指定的驱动器的名称。drivespec参数必须是文件或文件夹的绝对路径,或者仅仅是驱动器字母,例如:“c:”或“c” 



(2)    与文件夹有关的方法

与文件夹有关的方法如表5-6所示:

表5-6  与文件夹有关的方法及说明

方 法 

说 明 



BuildPath(path,name) 

在已有的路径path上增添名字为name的文件或文件夹,如果需要,则增添路径分隔符’’ 



CopyFolder(source,destination,overwrite) 

从指定的源文件夹source(可以包含通配符)中复制一个或多个文件夹到指定的目标文件夹destination,包含了源文件夹中的所有文件。如果source包含通配符或destination末尾是路径分隔符(‘’),那么认为destination是要放置源文件夹的拷贝的文件夹。否则的话,认为destination是要创建的新文件夹的路径名。如果destination文件夹已经存在且overwrite参数设置为False,将产生错误,缺省的overwrite参数是True 



CreateFolder(foldername) 

创建一个路径名为foldername的文件夹。如果foldername已经存在将产生错误 



DeleteFolder(folderspec,force) 

删除由folderspec指定的一个或多个文件夹(可以在路径的最后部分包含通过配符)及文件夹中的所有内容。如果可选的force参数设置为true,那么即使文件夹包含的文件具有只读属性,也将删除该文件夹。缺省的force参数是False 



FolderExist(folderspec) 

如果folderspec指定的文件夹存在则返回True,否则返回False。folderspec参数可以包含文件夹的绝对或相对路径,或者仅仅是当前文件夹中看到的文件夹名 



GetAbsolutePathName(pathspec) 

返回明确指定文件夹的路径,其中要考虑到当前文件夹的路径。例如,如果当前文件夹是“c:docssales”,而pathspec是“jan”,返回的字符是“c:docssalesjan”。通配符、”..”和”\”路径操作符都是可以接受的 



GetFolder(folderspec) 

返回folderspec指定的文件夹对应的Folder对象。folderspec可以是文件夹的相对的或绝对的路径 



GetParentFolderName(pathspec) 

返回pathspec文件或文件夹的上一级文件夹。不检验该文件夹是否存在 



GetSpecialfolder(folderspec) 

返回一个特定的Windows文件夹相对应的Folder对象。参数folderspec的允许值是WindowsFolder(0)、SystemFolder(1)和TemporaryFolder(2) 



MoveFolder(source,destination) 

将source指定的一个或多个文件夹移动到destination指定的文件夹。在source里可以包含通配符,但在destination中不行。如果source包含通配符或destination末尾是路径分隔符(‘’),则认为destination是要放置源文件夹的文件夹,否则认为它是一个新文件夹的完整路径和名字。如果目的文件夹destination已经存在则产生错误 



(3)    与文件有关的方法

与文件有关的方法如表5-7所示:

方 法 

说 明 



CopyFile(source,destination,

overwrite) 

将source(可包含通配符)指定的一个或多个文件复制到指定的目标文件夹destination。如果source包含通配符或destination末尾是路径分隔符(‘’),那么认为destination是文件夹。否则认为destination为一新文件的完全路径和名称。如果目标文件夹已经存在且overwrite参数设置为False,将产生错误。缺省的overwrite参数是True 



CreateTextFile(filename,overwrite,

unicode) 

用指定的文件名filename在磁盘上创建一个新的文本文件,并返回与其对应的TextStream对象,如果可选的overwrite参数设置为True,则覆盖同一路径下已有的同名文件。缺省的overwrite参数是False。如果可选的unicode参数设置为True,则该文件的内容将存储为Unicode文本,缺省的unicode参数是False 



DeleFile(filespec,force) 

删除由filespec指定的一个或多个文件(可以在路径的最后部分包含通配符)。如果可选的force参数设置为true,那么也删除具有只读属性的文件。缺省的force参数是False 



FileExists(filespec) 

如果filespec指定的文件存在则返回True,否则返回False。filespec参数可以包含文件的绝对路径或相对路径,或者是当前文件夹中的文件名 



GetBaseName(filespec) 

返回filespec指定的文件的名称,即包含文件路径但去掉了文件的扩展名 



GetExtensionName(filespec) 

返回filespec指定的文件的扩展名 



GetFile(filespec) 

返回filespec指定的文件所对应的File对象。可以指定文件的相对或绝对路径 



GetFileName(pathspec) 

返回pathspec指定的文件的路径或文件名,如果没有文件名就返回最后的文件夹名。不检查该文件或文件夹是否存在 



GetTempName() 

返回一个随机产生的文件名,用于完成运算所需的临时文件或文件夹 



MoveFile(source,destination) 

将source指定的一个或多个源文件移动到destination指定的目的文件夹。在source里可以包含通配符,但destination不行。如果source包含通过配符或destination末尾是路径分隔符(‘’),那么认为destination是一文件夹。否则,认为destination是一新文件夹的完整路径和名称。如果目的文件夹已经存在则产生错误 



OpenTextFile(filename,iomode,create,

    format) 

创建一个名叫做filename的文件,或打开一个现有的名为filename的文件,并且返回一个与其相关的TextStream对象。filename参数可以包含绝对或相对路径。iomode参数指定了所要求的访问类型。允许的数值是ForReading(1)(缺省)、ForWriting(2)、ForAppending(8)。当写入或追加到一个不存在的文件时,如果create参数设置为true,就将创建一个新文件。缺省的create参数是False。format参数说明对文件读或写的数据格式。允许数值是:TristatetFalse(0)(缺省),按照ASCII格式打开;TristatetTrue(-1),按照Unicode格式打开;TristateDefault(-2),用系统缺省格式打开 



       Unicode文件使用两个字节标识每个字符,取消了ASCII字符最多256个的限制。



5.4.2 使用驱动器

       下面是使用FileSystemObject对象的简单例子,它使用DriveExists方法得到现有的驱动器字母的列表:

       ‘ In VBScript

       Set objFSO = Server.CreateObject(“Scripting.FileSystemObject”)

       For intCode = 65 To 90                ‘ANSI codes for ‘A’ to ‘Z’

              strLetter = Chr(intCode)

              If objFSO.DriveExists(strLetter) Then

                     Response.Write “Found drive “ & strLetter & “:<BR>”

              End If

       Next

1.  Folder对象

Driver对象的RootFolder属性返回一个Folder对象,通过该对象可访问这个驱动器内的所有的内容。可以使用这个Folder对象的属性和方法遍历驱动器上的目录,并得到该文件夹和其他文件夹的属性。

(1)    Folder对象的属性

Folder对象提供一组属性,可用这些属性得到关于当前文件夹的更多信息,也可以改变该文件夹的名称。其属性及说明如表5-9所示:

表5-9  Folder 对象的属性及说明

属 性 

说 明 



Attributes 

返回文件夹的属性。可以是下列值中的一个或其组合:Normal(0)、ReadOnly(1)、Hidden(2)、System(4)、Volume(名称)(8)、Directory(文件夹)(16)、Archive(32)、Alias(64)和Compressed(128)。例如,一个隐藏的只读文件,Attributes的值为3 



DateCreated 

返回该文件夹的创建日期和时间 



DateLastAccessed 

返回最后一次访问该文件夹的日期和时间 



DateLastModified 

返回最后一次修改该文件夹的日期和时间 



Drive 

返回该文件夹所在的驱动器的驱动器字母 



Files 

返回Folder对象包含的Files集合,表示该文件夹内所有的文件 



IsRootFolder 

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



Name 

设定或返回文件夹的名字 



ParentFolder 

返回该文件夹的父文件夹对应的Folder对象 



Path 

返回文件夹的绝对路径,使用相应的长文件名 



ShortName 

返回DOS风格的8.3形式的文件夹名 



ShortPath 

返回DOS风格的8.3形式的文件夹的绝对路径 



Size 

返回包含在该文件夹里所有文件和子文件夹的大小 



SubFolers 

返回该文件夹内包含的所有子文件夹对应的Folders集合,包括隐藏文件夹和系统文件夹 



Type 

如果可能,返回一个文件夹的说明字符串(例如,“Recycle Bin”) 



(2)    Folder对象的方法

Folder对象提供一组可用于复制、删除和移动当前文件夹的方法。这些方法的运行方式与FileSystemObject对象的CopyFolder、DeleFolder和MoveFolder方法相同,但这些方法不要求source参数,因为源文件就是这个文件夹。这些方法及说明如表5-10所示:

表5-10  Folder对象的方法及说明

方 法 

说 明 



Copy(destination,overwrite) 

将这个文件夹及所有的内容复制到destination指定的文件夹。如果destination的末尾是路径分隔符(‘’),那么认为destination是放置拷贝文件夹的一个文件夹。否则认为destination是要创建的新文件夹的路径和名字。如果目标文件夹已经存在且overwrite参数设置为False,将产生错误,缺省的overwrite参数是True 



Delete(force) 

删除文件夹及里面的所有内容。如果可选的force参数设置为True,即使文件夹设置为只读或含有只读的文件,也将删除该文件夹。缺省的force是False 



Move(destination) 

将文件夹及里面所有的内容移动到destination指定的文件夹。如果destination的末尾是路径分隔符(‘’),那么认为destination是放置移动文件夹的一个文件夹。否则认为destination是一个新的文件夹的路径和名字。如果目标文件夹已经存在,则出错 



CreateTextFile

(filename,overwrite,unicode) 

用指定的文件名在文件夹内创建一个新的文本文件,并且返回一个相应的TextStream对象。如果可选的overwrite参数设置为True,将覆盖任何已有的同名文件。缺省的overwrite参数是False。如果可选的unicode参数设置为True,文件的内容将存储为unicode文本。缺省的unicode是False 



       在文件夹之间可以使用当前文件夹的ParentFolder属性,返回到父目录。当到达一个文件夹时,如果IsRootFolder属性是True,就停下来。离开驱动器的根目录,沿目录树向下,可遍历或访问在Folders集合(由当前文件夹的SubFolders属性返回)内的指定文件夹。

       下列程序遍历了驱动器C根目录内的所有文件夹,并显示各个文件夹的有关信息。

       VBScript程序如下:

       'In VBScript:

' Create a FileSystemObject instance

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

' Get a reference to drive C

Set objDriveC = objFSO.GetDrive("C:")

' Get a reference to the root folder

Set objRoot = objDriveC.RootFolder

' Get a reference to the SubFolders collection

Set objFolders = objRoot.SubFolders

' Get a reference to the first folder in the SubFolders collection

For Each objFolder In objFolders

  Set objFolder1 = objFolders.Item((objFolder.Name))

  Exit For

Next

' Iterate through all the files in this folder

For Each objFile in objFolder1.Files

  Response.Write "Name: " & objFile.Name & "   "

  Response.Write "ShortName: " & objFile.ShortName & "   "

  Response.Write "Size: " & objFile.Size & " bytes    "

  Response.Write "Type: " & objFile.Type & "<BR>"

  Response.Write "Path: " & objFile.Path & "   "

  Response.Write "ShortPath: " & objFile.ShortPath & "<BR>"

  Response.Write "Created: " & objFile.DateCreated & "   "

  Response.Write "LastModified: " & objFile.DateLastModified & "<P>"

Next

http://www.25175.com/200609/25175/25175_html/2007-12/2591.html

Scripting.FileSystemObject对象的详细技巧指南的更多相关文章

  1. JS、ActiveXObject、Scripting.FileSystemObject

    Javascript之文件操作 (IE) 一.功能实现核心:FileSystemObject 对象      要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对 ...

  2. ASP入门(十四)-FileSystemObject 对象

    File Access 组件中常见的对象有 FileSystemObject.TextStream.File.Folder.Drive等,其中每一个对象都有不同的属性和方法,我们将会在用到的时候进行详 ...

  3. javascript ActiveXObject FileSystemObject 对象,创建、复制、删除、读取文件等

    Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼.富有朝气.但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读.写和删除,就象在VB.VC等高 ...

  4. VBA中的FileSystemObject对象(FSO)和文本流

    对FileSystemObject一直略有耳闻,VBA爱好者常常简称为FSO对象. 在Scripting类库中有三个可以直接使用NEW关键字实例化的类,第一个就是常用的字典,第三个是FSO. 一.FS ...

  5. VBS基础篇 - FileSystemObject对象

    文件系统是所有操作系统最重要的部分之一,脚本经常会需要对文件及文件夹进行访问和管理,在Vbs中对桌面和文件系统进行访问的顶级对象是FileSystemObject FSO包含的常见对象有:       ...

  6. VBS基础篇 - 对象(3) - FileSystemObject对象

    VBS基础篇 - 对象(3) - FileSystemObject对象   文件系统是所有操作系统最重要的部分之一,脚本经常会需要对文件及文件夹进行访问和管理,在Vbs中对桌面和文件系统进行访问的顶级 ...

  7. FileSystemObject对象及常用方法

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

  8. VB 中定义FileSystemObject对象,要先添加对象

     存取文件的方法有很多种,可以使用上述VB提供的函数,使用Windows API函数等等,但是最简单的方法是使用FileSystemObject对象. 1.使用FileSystemObject对象 F ...

  9. JS实现返回对象的详细信息

    使用JS有时会需要打印出对象的详细信息,下面方法可以实现: function ShowObjProperty(Obj) { var PropertyList=''; var PropertyCount ...

随机推荐

  1. chmod 权限 命令详细用法

    指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案 ...

  2. JAVA-JSP内置对象之application对象获得其他信息

    相关资料:<21天学通Java Web开发> application对象获得其他信息1.通过调用application对象的其他方法可以获得更多信息,如文件的MIME类型.获得指定Loca ...

  3. python 基础总计 2

    6.函数:      match.sqrt(),lower(),len(),type(),isinstance('a',str),max(),min(),dir(),hex(),setattar(ob ...

  4. IDEA快捷键整理(最详细的)

    IDEA快捷键 Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭 ...

  5. webbrowser取页面验证码

    碰到一个无比坑爹,外加蛋疼乳酸的问题.从昨天晚上发现bug,到今天下午解决问题,搞了大半天的时间.光是找问题就花了半天,解决问题的方法简单,但是方案的形成也是无比纠结的过程. 背景:webbrowse ...

  6. SpringBoot2 @validated 类型效验

    详细参见:<Spring Boot 2精髓:从构建小系统到架构分布式大系统> 第三章 3.5节 验证框架 package com.archibladwitwicke.springboot2 ...

  7. C程序模拟实现银行家算法

    C程序模拟实现银行家算法 上周又做操作系统实验,题目是用程序模拟实现银行家算法,写了半天还真有点晕,主要是因为想尽可能符合课本上的描述,所以写出来的程序就比较恶心了,好了,银行家算法就不多说了,不了解 ...

  8. Java对象创建的过程及对象的内存布局与访问定位

    这里以HotSpot为例,且所说的对象指普通的Java对象,不包括数组和Class对象等. 1.对象创建的过程 1.类加载.解析.初始化:虚拟机遇到new时先检查此指令的参数是否能在常量池中找到类的符 ...

  9. CSS3圆角,阴影,透明

    CSS实现圆角,阴影,透明的方法很多,传统的方法都比较复杂,用CSS3就方便很多了,虽然现在各浏览器对CSS3的支持还不是很好,但不久的将来CSS3就会普及. 1.圆角 CSS3实现圆角有两种方法. ...

  10. Sword redis补充

    Redis 键(key) Redis 键命令用于管理 redis 的键. redis任何数据类型都有key --删除key的命令 redis> del key Redis 事务 Redis 事务 ...