admin 管理员组

文章数量: 887021


2023年12月17日发(作者:nullnull?vkey null)

FSO组件之CreateTextFile方法介绍

篇一:vb6中的fso对象模型

VB6中的FSO对象模型

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

在编程中,我们经常需要处理文件系统中的驱动器、文件夹和文件,例如收集驱动器相关信息;创建、添加、移动或删除文件夹、文件等。在VB6中,提供了一个名为FSO(文件系统对象)的新对象模型来访问文件系统。该模型提供了一个基于对象的工具。通过它提供的一系列属性和方法,我们可以在应用程序中更简单、更灵活地操作文件系统。

一、fso简介

FSO对象模型包含以下对象:

drive对象:允许收集系统物理或通过lan与系统逻辑连接的硬盘、cd-rom等驱动器的可用空间、共享名等信息。

文件夹对象:允许您创建、删除或移动文件夹,并在系统中查询文件夹的名称和路径。

files对象:允许创建、删除或移动文件,并向系统查询文件的名称、路径等。

TextStream对象:允许您创建、读取和写入文本文件。

filesystemobject对象:提供一整套用于驱动器、文件夹和文件操作的方法,在功能上可以把它看作是上面几个对象的集合并且经常与它们配合使用。与该对象相关联的很多方法重复了前面四个对象中的方法,因此我们既可以通过filesystemobject对象来对驱动器、文件夹和文件进行大多数操作,也可以通过对应的驱动器、文件夹或文件对象对这些组件进行操作。fso模型通过两种方法实现对同一对象的操作,其操作效果是相同的,提供这种冗余功能的目的是为了实现最大的编程灵活性。

FSO对象模型包含在名为脚本的类型库中,该类型库位于scrrun DLL文件中。您可以从“项目”菜单的“引用”对话框中选择“Microsoft脚本运行时”项来引用该文件。

创建一个filesystemobject对象,可以通过如下两种方法来完成:1苯一个变量声明为filesystemobject对象类型:dimfsoasnewfilesystemobject;2笔褂createobject方法来创建:setfso=createobject(″stemobject″)。

二、 驱动器的操作

对驱动器的操作主要通过drive对象并配合filesystemobject对象,fso不支持进行创

创建或删除驱动器的操作,只允许收集有关系统使用的驱动器的信息。可以从对象的属性中获得以下信息:驱动器的可用空间或可用空间(字节);分配给驱动器的字母;驱动类型;驱动器使用的文件系统类型,如fat、FAT32、NTFS等(文件系统);驱动器是否准备就绪;驱动器的路径或根文件夹(路径和根文件夹);驱动器序列号;共享名称或卷标名称(sharename和volumename);驱动器的总大小(字节)。以下示例说明了如何收集有关驱动器的信息:

dimfsoasnewfilesystemobject,drvasdrive,strasstring

setdrv=fso。getdrive(vename(“'c:”))

″totalspace:″&formatnumber(ize/1024,0)&″kb″

调试。打印“freespace:”和formatnumber(ace/1024,0)和“kb”

endsub

三、 对文件夹的操作

folder对象允许通过所提供的方法来复制(copy)、删除(delete)或移动(move)文件夹,并通过其属性向系统查询其名称(name)、路径(path)以及创建日期(datecreated)等。filesystemobject对象对文件夹的操作方法有创建(createfolder)、复制(copyfolder)、移动(movefolder)和删除(deletefolder)。在进行上述操作之前,首先要获得该文件夹的访问句柄(getfolder)。下例说明了如何对文件夹进行操作:

DIMFSOANewFileSystemObject,fldrasfolder

setfldr=der(″c:″)

'获取当前文件夹的访问句柄

″parentfoldernameis:″&fldr

'打印文件夹名称

″containedondrive″&′打印驱动器名

fso。createfolder(c:temp)

′用filesystemobject对象创建一个新的文件夹

fso。删除文件夹(“c:temp”)

′删除新建的文件夹

endsub

访问一个对象,要首先用“get”方法获得该对象的访问句柄,但如果是用“create”函数新创建一个对象,函数会返回一个句柄到新创建的对象,这时只要设置一个变量来获取该句柄即可,不必再用“get”方法。如:setfldr=folder(″c:temp2″)。

四、 文件操作

读写文件,在vb6之前都是使用open等语句来实现,fso支持通过textstream对象来创建和读写文本文件。

FSO通过三种方法创建顺序文本文件:createtextfile、opentextfile和openastextstream。创建文件后,可以分三步写入数据:

1.崩用filesystemobject对象的opentextfile方法或file对象的openastextstream方法打开文本文件以备写入数据。

2.使用TextStream对象的Write、writeline或writeblanklines方法写入数据。

3.笔褂textstream对象的close方法关闭文件。

以下示例说明了如何创建文本文件:

我们可使用textstream对象的read、readline或readall方法从一个文本文件中读取数据。

DIMFSOANewFileSystemObject、filasfile、tsastextstream

textfile″c:″

setfil=fso。getfile(〃c:〃)

setts=textstream(forwriting)

(““这是一个测试文件!”)

setts=fil。openastextstream(用于阅读)

s=ne

msgboxs

endsub

除了创建与读写文件之外,vb6还可通过filesystemobject对象对文件进行复制(copyfile)、移动(movefile)与删除(deletefile)等操作,在file对象中等效的方法有copy、move和delete。例程如下:

DIMFSOANewFileSystemObject、txtfileastextstream、fil1asfile、fil2asfile

settxtfile=textfile(″c:″,true)

txtfile。写入(“这是一个测试文件!”)

setfil1=fso。getfile(〃c:〃)

′获得一个文件句柄

fil1。复制(c:)

′将该文件复制到temp1目录下

fil1。移动(c:)

′将该文件移动到temp2目录下

setfil1=fso。getfile(c:)

′获得这些文件当前位置的句柄

setfil2=fso。getfile(c:)

fil2。删去

endsub

51查逊。网

篇二:fso组件

FSO组件

一、fso组件:擅长处理某个功能的对象。

二、 ASP内置组件:

创建adrotator对象实例:

<%setmyads=服务器。createobject(“tor”)%%>

三、使用组件:database

Access(ADO)(FSO)操作数据库函数操作文件函数文件访问

四、fso的创建:

Set object variable name=server createobject(“stemobject”)

eg:setfs=object(“stemobject”)

五、 复制和删除文件

1、复制文件

语法:文件系统对象实例名称Copyfile(源、目标、覆盖)用途:FileSystemObject对象的Copyfile方法将源指定的文件复制到目标。如果存在同名文件且overwrite的值为true,则表示覆盖该文件,否则不会覆盖该文件。

2、删除文件

语法:文件系统对象实例名deletefilepath,force

用途:filesystemobject对象的deletefile方法可以删除path指定的文件。

路径必须使用实际路径;强制的默认值为false。只读不会被删除

文件,若要采用默认值可省略不写。若要删除只读文件,force的值要设为true。

【示例如下】:文件ASP文件用于检测ASP文件是否存在。如果存在,请将其删除。否则,创建文件。

<%setobjfile=object("stemobject")

p=服务器。mappath(“”)

ists(p)then

objfile。deletefilep,对

"此文件已存在,已被删除!"

其他的

setcgfile=textfile(p,false)

回答写“此文件不存在,创建完成”

endif%>

六、 打开、读取和写入文件

1.打开文件

语法:文件系统对象实例名opentextfile(文件名、i/omode、creat)

使用filesystemobject对象的opentextfile方法可以打开

文件名指定的文本文件,并返回TextStream对象的实例;I/omode是文本文件的打开模式,“1”表示只读,“2”表示可写(清除文本文件的原始内容),“8”表示附加到文本文件的背面(不清除文本文件的原始内容),默认为“1”;Create是一个布尔值。如果为true,则表示当文本文件不存在时

存在时就自动创建一个空的文件,若为false就会在文件未找到时产生一个出错信息。默认值为false,建议改为true以避免在打开文件时检查是否出错。

打开或创建文本文件后,会得到一个TextStream对象,该对象有一个光标,就像文字处理程序中的光标一样。TextStream对象具有方法和属性。

2.读取文件内字符

打开文件并获取TextStream对象的实例后,可以使用TextStream

对象提供的read(num)、readline、readall方法从文件读取num个字符、一行或全部内容。

[阅读几个字符的示例如下]

<%setcf=object("stemobject")

p=服务器。mappath(“abc/”)

setsf=xtfile(p,1,false)

(4)'在文本流对象中将光标的位置移动一定数目的字符串长度

t=sf。读(8)

旧金山。关闭“关闭文本流对象和相应的文本文件%>

【readone读取一行实例如下】

<%setcf=服务器。createobject(“stemobject”)

p=h("abc/")

回答书写

setsf=xtfile(p,1,true)

旧金山。Skipline()'将光标在文本对象流中跳过一行

t=ne

回答书面语

%>

[readall按如下方式读取所有实例]

<%setcf=object("stemobject")

p=服务器。mappath(“”)

&"

"

setsf=xtfile(p,1,false)

t=l

回答书面替换(t,chr(10),“

”)

%>

3.向文件中写入字符

打开文件并取得一个textstream对象实例后,可使用textstream

对象提供write(字符串)、writeline(字符串)、writeblanklines(Num)

方法,在文件内写入字符串、字符串和换行符、num个换行字符。

[举例如下:]

<%setobjf=object("stemobject")

p=服务器。mappath(“”)

setwf=xtfile(p,2,true)'以可写入方式打开文件,如果该文件不存在,就创建它。

wf。写“中华人民共和国”写正文时,必须用双引号括起来。

(55+7)'write方法还具有计算功能,写入的为表达式的值。

wf。写“周年纪念”

ine("--2021年10月1日")

wf。Writeblank lines(3)'将3个空行写入流对象。

ine"团结、勤奋、求实、创新"

wf。接近%>

第二部分

内容链接组件:它专门用于管理网页或网址之间的超文本链接。通过网页或网址的线性列表管理多个网页或网址之间的超文本链接。

一、建立contentlinking组件的实例:

Set object instance name=server createobject(“nk”)

二、创建网页或网址的线性排列顺序文件

该文件是一个文本文件,文件扩展名为Txt,其语法为:网页URL[说明文本[注释文本]]

其中“网页的url”是表示所要连接的网页或网址;“描述文字”是对特定网页的说明文字,是显示给浏览者的;“附注文字”是对网址的附注说明,不显示给浏览者,但给编程者做详细的说明。

三、 内容链接组件的方法

1、首先用setnextlink=object("nk")创建一个名为nextlink的对象实例。

2、 下一个链接。Getlistcount(“”)方法获取“网页或网址的线性排列文件”中“网页或网址URL”的数量。返回值是一个整数。

3、tindex("")方法取得当前文档在“网页或网址的线性排列文件”中的排列顺序。返回值为整数。

4、 下一个链接。getnextdescription(“”)方法获取“网页或URL的线性排列文件”中下一个“网页或URL”的描述,返回值为字符串。

5、viousdescription("")方法取得“网页或网址的线性排列文件”中的前一个“网页或网址url”的描述说明,返回值为字符串。

6、 下一个链接。getnthurl(“”,n)方法获取“网页或网址的线性排列文件”中指定顺序值的“网页或网址URL”,并返回值字符串。

7、description("",n)方法取得“网页或网址的线性排列文件”

第三部分:FSO组件

编辑词条

fso

fso=futongshowaoptical

杭州富通通信技术有限公司

英文全称如下:

在ASP中,FSO表示文件系统对象,即文件系统对象。在本例中,我们要操作的计算机文件系统位于web服务器上。因此,请确保您对此拥有正确的权限。理想情况下,您可以在自己的机器上设置一个web服务器,以便轻松地进行测试。如果您在Windows平台上运行,请尝试Microsoft的免费个人web服务器PWS。

fso模型对象

Driveobject:用于访问磁盘或网络驱动器的驱动器对象

filesystemobjectobject:文件系统对象供存取计算机的文件系统

Folderobject:提供对文件夹所有属性的访问的文件夹对象

textstreamobject:文本流对象供存取文件内容

您可以使用上述对象在计算机上执行任何操作,包括破坏-(因此,请小心使用FSO。在web环境中,存储信息非常重要,例如用户信息、日志文件等。FSO提供了一种有效保存数据的强大而简单的方法。在本文中,我们重点介绍FileSystemObject和TextStream对象。

fso由微软公司提供支持,对于非windows系统,大概不能再使用asp。怎么样使用fso?

为了使用FSO执行所有工作,首先创建一个对象。代码如下:<%

setfso=object("stemobject")

%>

这样就建立了fso并且赋予变量fso,接着就可以使用熟悉的语法来执行文件系统的操作〔查看visualbasic文档,获取更多的关于对象和对象向导编程的知识〕。在这里,我们可以使用或者ty,这些将在下面的例子中看到。

FSO模型位于Microsoft提供的脚本运行时DLL文件中。这是scrrun dll。您可以在任何应用程序中引用此dll文件,例如msaccess和word。换句话说,它不仅限于ASP。

这里有一个简要的fso方法列表:

FSO法

copyfile拷贝一个或者多个文件到新路径

Createtextfile创建一个文件并返回一个TextStream对象

deletefile删除一个文件

Opentextfile打开文件并返回TextStream对象以进行读取或追加。有关完整的FSO方法和属性,请参阅Microsoft MSDN。这里有几个例子。

权限许可

上面讨论了基本知识,然后讨论了许可问题。FSO使用创建它的用户帐户的权限运行。换句话说,如果有人从Internet访问您的页面,Internet帐户将创建FSO。如果您以管理员身份登录到计算机并登录到该页面,则管理员帐户将创建FSO。这一点非常重要,因为某些帐户具有某些权限,而FSO需要一些权限才能完全执行功能。Internet帐户(iuser_machinename,machinename是服务器的名称)通常只有读取权限,这意味着用户将无法写入留言簿文件。然而,有几种方法可以绕过这个问题。

首先,也是很困难的,是要求用户在填写留言簿前登录到服务器。然而,留言簿的要点是从匿名用户处收集信息,如

如果要求用户登录,他们必须知道自己是谁。所以跳过这个选项,看看下一个。第二种方法是创建一个目录或文件,即machinename用户有写入权限。这可能会导致一些潜在的安全漏洞

洞,因为任何知道正确目录并具备一定web技巧的人就能在服务器上填充内容。这是一个很严重的禁忌。所以你必须确认在

隐藏位置存储这些可写目录的信息,并尽可能将这些目录设置在web目录结构之外(例如,在windows下,这是一个

不在inetpub目录下的一个目录)。

文件读取

现在已经有了一些用户信息保存在文件中,就像一个简单的数据库。假设有一个用户想了解所有的访问者,就要从登记的信息中分离出相关部分,因为没有象数据库一样拥有结构化的列。我们知道,在所创建的文件中,第1行是用户名,第2行是他们的主页,第3行是他们的电子邮件地址。随后登记的用户也是按照这样的结构存储他们的信息,所以每3行将包含一个用户的登记信息。知道了这些,就可以编写下面的代码来显

显示信息:

<%

“createthefsoobject

setfso=object("stemobject")

path=“c:”

'openthefile

setfile=fso。opentextfile(路径1)<--用于

reading

接下来,分析每一行并格式化数据:

fstream

回答写入(“名称:“&ne&”)

("homepage:"&ne&"")

回答写(“电子邮件:&ne&“

”)

loop

“关闭和清理

setfile=nothing

setfso=nothing

%>

这里仅仅做了一个非常简单的输出,但是你可以根据情况包含表格或者dhtml表单信息。

如果文件已正确创建和写入,上面的小循环将正确列出数据库中每个人的信息。ReadLine方法读取1

行内容,直到遇到换行符,随后的readline调用将读取下一行。atendofstream是textstream对象的属性,它告诉我们何时

遇到文件结尾。

假设由于某种原因,我们没有正确地形成文件,如果一个用户只有2行信息而不是3行,那么就会产生一些错误。我们

这里的循环检索文件中接下来的三行信息。如果信息不超过三行,将出现以下错误消息:

serverobjecterror'asp0177:800a003e'

因此,我们必须添加一些错误处理代码,以防止文件插入额外的行或丢失必要的行信息。

写文件

假设你想创建一个简单的留言簿,你可以建立一个数据库来存储用户信息。然而,如果你不需要强大的数据库功能,使用FSO存储信息将节省你的时间和金钱。此外,一些ISP可能会限制网络上的数据库应用程序。假设您在表单中收集了一些用户信息。下面是一个简单的表单HTML代码:

查看用于在ASP中处理表单的formhandler代码:

<%

“getforminfo

strname=("username")

strhomepage=请求。表格(“主页”)

stremail=("email")

“createthefsoobject

setfso=object("stemobject")

到目前为止,没有什么新东西,只不过是获取表单字段的值并将其分配给变量。这里有一个有趣的部分——编写文件:

path="c:"

forreading=1,ForWrite=2,forappending=3

'openthefile

setfile=fso。opentextfile(路径,forappending,true)

'writetheinfotothefile

文件写入(strname)和vbcrlf

(strhomepage)&vbcrlf

文件写入(stremail)和vbcrlf

'closeandcleanup

文件关

setfile=nothing

setfso=无

回想一下,opentextfile方法返回一个textstream对象,它是fso模型中的另外一个对象。textstream对象揭示了操作文件内容的方法,比如写、读一行、跳过一行。vb常量vbcrlf产生一个换行符。

True在opentextfile的命令参数中定义,该参数告诉系统如果文件不存在,则创建该文件。如果文件不存在且未定义true参数,则会发生错误。

现在转到目录c:emp,打开,你可以看到如下的信息:

用户名称

user'shomepage

用户邮箱

当然,这些单词可以被输入在表单中的任何内容所替换。

使用FSO搜索

你也许想:好,现在我知道如何写入文件了。但能做到更多一些吗?下面来试一试为web站点建立一个搜索功能。建立搜索引擎的关键是递归。主要地,编写一段代码搜索目录下的文件,然后对所有的目录循环执行同样的代码。因为不能确定总共有多少个子目录,所以必须一遍又一遍地执行搜索代码,直到结束。递归调用非常好!下面来创建搜索页面。假设已经建立了一个html表单,用户在其中输入一个搜索字符串。

dimobjfolder

dimstrsearchtext

dimobjfso

strsearchtext=("searchtext")<--thesearchstring'createthefsoandfolderobjects

setfso=服务器。createobject(“stemobject”)

setobjfolder=der(h("/"))

searchobjfolder

上面的代码简单地初始化变量,search函数执行搜索功能,描述如下:functionsearch(objfolder)

dimobjsubfolder

'loopthrougheveryfileinthecurrent

文件夹

setobjtextstream=objfso。opentextfile(,1)<--用于读取“readthefile”内容

variable

strfilecontents=objtextstream。readall

'ifthesearchstringisinthefile,then

WriteLink

'tothefile

ifinstr(1,strfilecontents,strsearchtext,1)然后

"

“>”和objfile。名称和“

bolfilefound=true

恩迪夫

下一个

'here'stherecursionpart-foreach

'在此目录中的子文件夹,运行搜索功能

ders

searchobjsubfolder

next

端功能

/temp/或者/temp/。为了将后者转换为前者,使用h


本文标签: 文件 对象 方法 创建 信息