FileSystemObject vba createobject

QTP帮助文档VBScript56.CHM->ScriptRuntime->FileSystemObject Object (C:ProgramFilesQuickTest Professionalhelp,仅VBScript,翻译来源于网上)

FileSystemObject 对象模型

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

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

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

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

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

FileSystemObject 对象

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

对象/集合

描述

FileSystemObject

主对象。包含用来创建、删除和获得有关信息,以及通常用来操作驱动器、文件夹和文件的方法和属性。和该对象相关联的许多方法,与其他FSO对象中的方法完全相似;它们是为了方便才被提供的。

Drive

对象。包含用来收集信息的方法和属性,这些信息是关于连接在系统上的驱动器的,如驱动器的共享名和它有多少可用空间。请注意,"drive" 并非必须是硬盘,也可以是 CD-ROM 驱动器,RAM磁盘等等。并非必须把驱动器实物地连接到系统上;它也可以通过网络在逻辑上被连接起来。

Drives

集合。提供驱动器的列表,这些驱动器实物地或在逻辑上与系统相连接。Drives集合包括所有驱动器,与类型无关。要可移动的媒体驱动器在该集合中显现,不必把媒体插入到驱动器中。

File

对象。包含用来创建、删除或移动文件的方法和属性。也用来向系统询问文件名、路径和多种其他属性。

Files

集合。提供包含在文件夹内的所有文件的列表。

Folder

对象。包含用来创建、删除或移动文件夹的方法和属性。也用来向系统询问文件夹名、路径和多种其他属性。

Folders

集合。提供在 Folder内的所有文件夹的列表。

TextStream

对象。用来读写文本文件。

设计 FileSystemObject

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

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

创建 FileSystemObject 对象

首先,使用CreateObject方法来创建 FileSystemObject 对象。

下面代码显示如何创建FileSystemObject实例:

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

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

使用适当的方法

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

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

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

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

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

若要访问现有文件:

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

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

若要为CreateFolder函数创建变量,请使用该语法:

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

访问对象的属性

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

用该代码来获得GetFolder方法的一个句柄:

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

现在,已经有了Folder对象的句柄,就可以检查它的 Name 属性了。

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

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

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

处理驱动器和文件夹

使用FileSystemObject(FSO)对象模型,可以有计划地处理驱动器和文件夹,就像在 Windows资源管理器中交互式地处理它们一样。可以复制和移动文件夹,获取有关驱动器和文件夹的信息,等等。

获取有关驱动器的信息

可以用Drive对象来获得有关各种驱动器的信息,这些驱动器是实物地或通过网络连接到系统上的。它的属性可以用来获得下面的信息内容:

请考察示例代码,来领会如何在FileSystemObject中使用这些属性。

Drive 对象的用法示例

使用Drive对象来收集有关驱动器的信息。在下面的代码中,没有对实际的 Drive 对象的引用;相反,使用 GetDrive 方法来获得现有 Drive 对象的引用(在这个例子中就是 drv)。

下面示例示范了如何使用Drive对象:

Sub ShowDriveInfo(drvPath)
   Dim fso, drv, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
   s = "Drive " & UCase(drvPath) & " - "
   s = s & drv.VolumeName & "<br>"
   s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)
   s = s & " Kb" & "<br>"
   s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)
   s = s & " Kb" & "<br>"
   Response.Write s
End Sub

处理文件夹

在下面的表中,描述了普通的文件夹任务和执行它们的方法。

任务

方法

创建文件夹。

FileSystemObject.CreateFolder

删除文件夹。

Folder.Delete 或 FileSystemObject.DeleteFolder

移动文件夹。

Folder.Move 或 FileSystemObject.MoveFolder

复制文件夹。

Folder.Copy 或 FileSystemObject.CopyFolder

检索文件夹的名字。

Folder.Name

如果文件夹在驱动器上存在,则找出它。

FileSystemObject.FolderExists

获得现有 Folder对象的实例。

FileSystemObject.GetFolder

找出文件夹的父文件夹名。

FileSystemObject.GetParentFolderName

找出系统文件夹的路径。

FileSystemObject.GetSpecialFolder

请考察示例代码,来看看在 FileSystemObject中使用了多少种这些的方法和属性。

下面的示例示范了如何使用FolderFileSystemObject对象,来操作文件夹和获得有关它们的信息:

Sub ShowFolderInfo()

   Dim fso, fldr, s
   ' 获取 FileSystemObject 的一个实例
   Set fso = CreateObject("Scripting.FileSystemObject")
   ' 获取驱动器对象
   Set fldr = fso.GetFolder("c:")
   ' 打印父文件夹名
   Response.Write "Parent folder name is: " & fldr & "<br>"
   ' 打印驱动器名
   Response.Write "Contained on drive " & fldr.Drive & "<br>"
   ' 打印根文件名
   If fldr.IsRootFolder = True Then
      Response.Write "This is the root folder." & ""<br>"<br>"
FileSystemObject vba createobject
   Else
      Response.Write "This folder isn't a root folder." & "<br><br>" 
   End If
   ' 用 FileSystemObject 对象新建文件夹
   fso.CreateFolder ("C:Bogus")
   Response.Write "Created folder C:Bogus" & "<br>"
   ' 打印文件夹的基本名
   Response.Write "Basename = " & fso.GetBaseName("c:bogus") & "<br>"
   ' 删除新建文件夹
   fso.DeleteFolder ("C:Bogus")
   Response.Write "Deleted folder C:Bogus" & "<br>"
End Sub

处理文件

有两种主要的文件处理类型:

创建文件

创建空文本文件(有时被叫做“文本流”)有三种方法。

第一种方法是用CreateTextFile方法。下面的示例示范了如何用 CreateTextFile 方法创建文本文件:


Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:testfile.txt", True)

创建文本文件的第二种方法是,使用FileSystemObject对象的 OpenTextFile方法,并设置 ForWriting标志。
Dim fso, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting. FileSystemObject")
Set ts = fso.OpenTextFile("c:test.txt", ForWriting, True)
创建文本文件的第三种方法是,使用OpenAsTextStream方法,并设置 ForWriting标志。要使用这种方法,使用下面的代码:
Dim fso, f1, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("c:test1.txt")
Set f1 = fso.GetFile("c:test1.txt")
Set ts = f1.OpenAsTextStream(ForWriting, True)

添加数据到文件中

一旦创建了文本文件,使用下面的三个步骤向文件添加数据:

打开文本文件, 写入数据, 关闭文件。

要打开现有的文件,则使用FileSystemObject 对象的OpenTextFile 方法或File 对象的 OpenAsTextStream 方法。

要写数据到打开的文本文件,则根据下表所述任务使用TextStream 对象的Write、WriteLine 或 WriteBlankLines 方法。

任务

方法

向打开的文本文件写数据,不用后续一个新行字符。

Write

向打开的文本文件写数据,后续一个新行字符。

WriteLine

向打开的文本文件写一个或多个空白行。

WriteBlankLines

要关闭一个打开的文件,则使用TextStream 对象的Close方法。

注意新行字符包含一个或几个字符(取决于操作系统),以把光标移动到下一行的开始位置(回车/换行)。注意某些字符串末尾可能已经有这个非打印字符了。

下面的例子示范了如何打开文件,和同时使用三种写方法来向文件添加数据,然后关闭文件:

Sub CreateFile()
   Dim fso, tf
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set tf = fso.CreateTextFile("c:testfile.txt", True)
   ' 写一行,并带有一个新行字符。
   tf.WriteLine("Testing 1, 2, 3.") 
   '  向文件写三个新行字符。      
   tf.WriteBlankLines(3) 
   ' 写一行。
   tf.Write ("This is a test.") 
   tf.Close
End Sub

读取文件

要从文本文件读取数据,则使用TextStream 对象的ReadReadLineReadAll 方法。下表描述了不同的任务应使用哪种方法。

任务

方法

从文件读取指定数量的字符。

Read

读取一整行(一直到但不包括新行字符)。

ReadLine

读取文本文件的整个内容。

ReadAll

如果使用ReadReadLine方法,并且想跳过数据的特殊部分,则使用 SkipSkipLine 方法。read 方法的结果文本存在一个字符串中,该字符串可以显示在一个控件中,也可以用字符串函数(如LeftRightMid)来分析,连接等等。

下面的例子示范了如何打开文件,和如何写数据到文件中并从文件读取数据:

Sub ReadFiles
   Dim fso, f1, ts, s
   Const ForReading = 1
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f1 = fso.CreateTextFile("c:testfile.txt", True)
   ' 写入一行。
   Response.Write "Writing file <br>"
   f1.WriteLine "Hello World"
   f1.WriteBlankLines(1)
   f1.Close
   ' 读取文件内容。
   Response.Write "Reading file <br>"
   Set ts = fso.OpenTextFile("c:testfile.txt", ForReading)
   s = ts.ReadLine
   Response.Write "File contents = '" & s & "'"
   ts.Close
End Sub

移动、复制和删除文件

FSO 对象模型各有两种方法移动、复制和删除文件,如下表所述。

任务

方法

移动文件

File.Move 或 FileSystemObject.MoveFile

复制文件

File.Copy 或 FileSystemObject.CopyFile

删除文件

File.Delete 或 FileSystemObject.DeleteFile

下面示例在驱动器C的根目录中创建一个文本文件,向其中写一些信息,然后把它移动到 tmp 目录中,并在 temp 中做一个备份,最后把它们从两个目录中删掉。

要运行下面的示例,需要先在驱动器C 的根目录中创建 tmp 和 temp 目录

Sub ManipFiles
   Dim fso, f1, f2, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f1 = fso.CreateTextFile("c:testfile.txt", True)
   Response.Write "Writing file <br>"
   ' 写入一行。
   f1.Write ("This is a test.")
   ' 关闭写入到的文件。
   f1.Close
   Response.Write "Moving file to c:tmp <br>"
   ' 获取到 C: 根目录中文件的句柄。
   Set f2 = fso.GetFile("c:testfile.txt")
   ' 将文件移到 tmp 目录。
   f2.Move ("c:tmptestfile.txt")
   Response.Write "Copying file to c:temp <br>"
   ' 将文件复制到 temp。
   f2.Copy ("c:temptestfile.txt")
   Response.Write "Deleting files <br>"
   ' 获得文件当前位置的句柄。
   Set f2 = fso.GetFile("c:tmptestfile.txt")
   Set f3 = fso.GetFile("c:temptestfile.txt")
   ' 删除文件。
   f2.Delete
   f3.Delete
   Response.Write "All done!"
End Sub

  

爱华网本文地址 » http://www.413yy.cn/a/25101016/314454.html

更多阅读

VBA编程中MsgBox函数怎么用 vba msgbox

VBA编程中MsgBox函数怎么用——简介Excel编程中的MsgBox函数用于输出一个对话框,该函数在编程调试以及输出结果方面具有极为重要的意义。下面小编就为大家讲解一下该函数的具体使用方法。VBA编程中MsgBox函数怎么用——方法/步骤

excel VBA编程入门教程 精 excel vba编程入门

上回看到“excel 编程入门教程”求助贴,不料被别人捷足先登。没想到今天又看到这个求助经验贴,而且又有优先评优支持当然要领取了。本人也算上个世纪的编程老鸟,虽然对于当前的主流技术不是非常精通,但是对于Excel VBA,还是略知一二的。

转载 FileSystemObject的方法和属性 js filesystemobject

原文地址:FileSystemObject的方法和属性作者:衹因为你FileSystemObject的方法和属性1,FileExists : 如果文件存在就返回TRUESub FileExists()Dim fs As ObjectDim strFile As StringSet fs = CreateObject("scripting.filesystemobje

ExcelVBA之快速上手 excel vba教程

Excel VBA之快速上手转载第一章VBA语言基础第一节 标识符一.定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。二.命名规则1) 字母打头,由字母、数字和下划线

VB打印excel vba输出

Private Sub Command1_Click()Dim S() As String, FileName As String, i As Integer, j AsIntegerDim xlAppDim xlBookDim xlSheetFileName = App.Path &amp; "1.xls"'程序所在目录下的文件,请修改 Set xlApp =CreateObject("Excel

声明:《FileSystemObject vba createobject》为网友灬剑惊风雨分享!如侵犯到您的合法权益请联系我们删除