什么是FSO文本读写

什么是FSO文本读写,第1张

Set fso = ServerCreateObject("ScriptingFileSystemObject") 定义FSO对象

fsoCreateFolder(ServerMapPath(folder)) 得到路径

Set fout = fsoCreateTextFile(ServerMapPath(filepath)) 定义创建对象

foutWriteLine mb_code 创建文件夹。。

foutclose 关闭对象

下面是一些例子。。

提示:刚一开始看到有这样的功能,我也受骗了,以为真的可以通过浏览器在访问者的硬盘上创建文件,因为我开始试了一下真的可以,不信你把下面这段代码COPY到一个HTML文件当中再运行一下!

<script language="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

fsoDeleteFile("c:\\autoexecbat", true); //请注意啊!把autoexecbat改为你C盘中的其它文件名,你不改也可以!先把autoexecbat备份啊!

-->

</script>

是不是发现你C盘的Autoexecbat文件不见呢?呵呵

其实当那个文件运行时IE会提醒你当前使用的ActiveX控件不安全,询问你是否运行,但由于你和我一样迫切想试试究竟效果如何,因此你会毫不犹疑的按下 [确定] 其实这是使用了FileSystemObject来实现的,要了解更详细的用法与例子的话,点这里下载 JScript的中文说明文档 或者买本 <<深入学习:JavaScript开发与实例>> 也可以看看无忧脚本整理的例子,让大家学习学习

让我们先来看看有什么属性与函数可用,后面会对部分函数做些小例子

方法或者属性 描述

BuildPath()

生成一个文件路径

CopyFile() 复制文件

CopyFolder() 复制目录

CreateFolder() 创建新目录

CreateTextFile() 生成一个文件

DeleteFile() 删除一个文件

DeleteFolder() 删除一个目录

DriveExists() 检验盘符是否存在

Drives 返回盘符的集合

FileExists() 检验文件是否存在

FolderExists 检验一个目录是否存在

GetAbsolutePathName() 取得一个文件的绝对路径

GetBaseName() 取得文件名

GetDrive() 取得盘符名

GetDriveName() 取得盘符名

GetExtensionName() 取得文件的后缀

GetFile() 生成文件对象

GetFileName() 取得文件名

GetFolder() 取得目录对象

GetParentFolderName 取得文件或目录的父目录名

GetSpecialFolder() 取得特殊的目录名

GetTempName() 生成一个临时文件对象

MoveFile() 移动文件

MoveFolder() 移动目录

OpenTextFile()

打开一个文件流

实例说明

BuildPath(路径,文件名) //这个方法会对给定的路径加上文件,并自动加上分界符

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

var newpath = fsoBuildPath("c:\\tmp", "51jstxt"); //生成 c:\tmp\51jstxt的路径

alert(newpath);

-->

</SCRIPT>

CopyFile(源文件, 目标文件, 覆盖) //复制源文件到目标文件,当覆盖值为true时,如果目标文件存在会把文件覆盖

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

var newpath = fsoCopyFile("c:\\autoexecbat", "d:\\autoexecbak");

-->

</SCRIPT>

CopyFolder(对象目录,目标目录 ,覆盖) //复制对象目录到目标目录,当覆盖为true时,如果目标目录存在会把文件覆盖

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

fsoCopyFolder("c:\\WINDOWS\\Desktop", "d:\\"); //把C盘的Desktop目录复制到D盘的根目录

-->

</SCRIPT>

CreateFolder(目录名) //创建一个新的目录

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

var newFolderName = fsoCreateFolder("c:\\51JS"); //在C盘上创建一个51JS的目录

-->

</SCRIPT>

CreateTextFile(文件名, 覆盖) //创建一个新的文件,如果此文件已经存在,你需要把覆盖值定为true

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

var newFileObject = fsoCreateTextFile("c:\\autoexec51JSbat", true); //脚本将在C盘创建一个叫 autoexec51JSbat的文件

-->

</SCRIPT>

DeleteFile(文件名, 只读?) //删除一个文件,如果文件的属性是只读的话,你需要把只读值设为true

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject"); //为了安全我先把要删除的autoexecbat备份到你的D盘

var newpath = fsoCopyFile("c:\\autoexecbat", "d:\\autoexecbat"); //把C盘的autoexecbat文件删除掉

fsoDeleteFile("c:\\autoexecbat", true);

-->

</SCRIPT>

DeleteFolder(文件名, 只读?)//删除一个目录,如果目录的属性是只读的话,你需要把只读值设为true

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

fsoCopyFolder("c:\\WINDOWS\\Desktop", "d:\\"); //为了安全我先把你C盘的Desktop目录复制到你D盘的根目录

fsoDeleteFolder("c:\\WINDOWS\\Desktop", true); //把你的Desktop目录删除,但因为desktop是系统的东西,所以不能全部删除,但

-->

</SCRIPT>

DriveExists(盘符) //检查一个盘是否存在,如果存在就返会真,不存在就返回

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

hasDriveD = fsoDriveExists("d"); //检查系统是否有D盘存在

hasDriveZ = fsoDriveExists("z"); //检查系统是否有Z盘存在

if (hasDriveD) alert("你的系统内有一个D盘");

if (!hasDriveZ) alert("你的系统内没有Z盘");

-->

</SCRIPT>

FileExists(文件名) //检查一个文件是否存在,如果存在就返会真,不存在就返回

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

fileName = fsoFileExists("c:\\autoexecbat");

if (fileName) alert("你在C盘中有autoexecbat文件,按下确定后这个文件将被删除!"); //开个玩笑:)

-->

</SCRIPT>

FolderExists(目录名) //检查一个目录是否存在,如果存在就返会真,不存在就返回

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

folderName = fsoFolderExists("c:\\WINDOWS\\Fonts");

if (folderName) alert("按下确定后系统的字库将被删除!"); //开个玩笑:)

-->

</SCRIPT>

GetAbsolutePathName(文件对象) //返回文件对象在系统的绝对路径

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

pathName = fsoGetAbsolutePathName("c:\\autoexecbat");

alert(pathName);

-->

</SCRIPT>

GetBaseName(文件对象) //返回文件对象的文件名

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

baseName = fsoGetBaseName("c:\\autoexecbat"); //取得autoexecbat的文件名autoexec

alert(baseName);

-->

</SCRIPT>

GetExtensionName(文件对象) //文件的后缀

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

exName = fsoGetExtensionName("c:\\autoexecbat"); //取得autoexecbat后缀bat

alert(exName);

-->

</SCRIPT>

GetParentFolderName(文件对象) //取得父级的目录名

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

parentName = fsoGetParentFolderName("c:\\autoexecbat"); //取得autoexecbat的父级目录C盘

alert(parentName);

-->

</SCRIPT>

GetSpecialFolder(目录代码) //取得系统中一些特别的目录的路径,目录代码有3个分别是 0:安装Window的目录 1:系统文件目录 2:临时文件目录

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

tmpFolder = fsoGetSpecialFolder(2); //取得系统临时文件目录的路径 如我的是 C:\windows\temp

alert(tmpFolder);

-->

</SCRIPT>

GetTempName() //生成一个随机的临时文件对象,会以rad带头后面跟着些随机数,就好象一些软件在安装时会生成tmp

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

tmpName = fsoGetTempName(); //我在测试时就生成了radDB70Etmp

alert(tmpName);

-->

</SCRIPT>

MoveFile(源文件, 目标文件) //把源文件移到目标文件的位置

<SCRIPT LANGUAGE="JavaScript">

<!--

var fso = new ActiveXObject("ScriptingFileSystemObject");

var newpath = fsoMoveFile("c:\\autoexecbat", "d:\\autoexecbat"); //把C盘的autoexecbat文件移移动到D盘

-->

</SCRIPT>

楼主你好。fso就是filesyatemobject的缩写,是用于文件夹及文件操作的对象,内置与asp及vbs中。如下 set fso=CreateObject("filesyatemobjectscripting")就创建了对象。

FSO是一种新型无线宽带接入方式,是继激光器件发明之后,开始在工程上应用的,它是光纤通信与无线通信相结合的产物。FSO不是用光纤作为传输媒介,而是以大气为媒质,通过激光或光脉冲在太赫兹(THE)光谱范围内传送分组数据的通信系统,其传送终端在原理上与光纤传送终端十分相似,但由于用在接入系统,因而组成更为简单。

在ASP中,FSO的意思是File System Object,即文件系统对象。我们将要操纵的计算机文件系统,在这里是指位于web服务器之上。所以,确认你对此拥有合适的权限。理想情况下,你可以在自己的机器上建立一个web服务器,这样就能方便地进行测试。如果运行于Windows平台,请试一试微软公司的免费个人Web服务器PWS。

处理文件

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

创建、添加或删除数据,以及读取文件

移动、复制和删除文件

创建文件

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

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

Dim fso, f1

Set fso = CreateObject("ScriptingFileSystemObject")

Set f1 = fsoCreateTextFile("c:\testfiletxt", True)

要在 Visual Basic Scripting Edition 中用这种方法,则使用下面的代码:

var fso, f1;

fso = new ActiveXObject("ScriptingFileSystemObject");

f1 = fsoCreateTextFile("c:\\testfiletxt", true);

创建文本文件的第二种方法是,使用 FileSystemObject 对象的 OpenTextFile 方法,并设置 ForWriting 标志。在 VBScript 中,代码就像下面的示例一样:

Dim fso, ts

Const ForWriting = 2

Set fso = CreateObject("Scripting FileSystemObject")

Set ts = fsoOpenTextFile("c:\testtxt", ForWriting, True)

要在 Visual Basic Scripting Edition 中使用这种方法来创建文本文件,则使用下面的代码:

var fso, ts;

var ForWriting= 2;

fso = new ActiveXObject("ScriptingFileSystemObject");

ts = fsoOpenTextFile("c:\\testtxt", ForWriting, true);

创建文本文件的第三种方法是,使用 OpenAsTextStream 方法,并设置 ForWriting 标志。要使用这种方法,在 VBScript 中使用下面的代码:

Dim fso, f1, ts

Const ForWriting = 2

Set fso = CreateObject("ScriptingFileSystemObject")

fsoCreateTextFile ("c:\test1txt")

Set f1 = fsoGetFile("c:\test1txt")

Set ts = f1OpenAsTextStream(ForWriting, True)

在 Visual Basic Scripting Edition 中,则使用下面示例中的代码:

var fso, f1, ts;

var ForWriting = 2;

fso = new ActiveXObject("ScriptingFileSystemObject");

fsoCreateTextFile ("c:\\test1txt");

f1 = fsoGetFile("c:\\test1txt");

ts = f1OpenAsTextStream(ForWriting, true);

添加数据到文件中

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

打开文本文件。

写入数据。

关闭文件。

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

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

任务 方法

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

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

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

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

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

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

Sub CreateFile()

Dim fso, tf

Set fso = CreateObject("ScriptingFileSystemObject")

Set tf = fsoCreateTextFile("c:\testfiletxt", True)

' 写一行,并且带有新行字符。

tfWriteLine("Testing 1, 2, 3")

'向文件写三个新行字符。

tfWriteBlankLines(3)

'写一行。

tfWrite ("This is a test")

tfClose

End Sub

这个示例示范了在 Visual Basic Scripting Edition 中如何使用这三个方法:

function CreateFile()

{

var fso, tf;

fso = new ActiveXObject("ScriptingFileSystemObject");

tf = fsoCreateTextFile("c:\\testfiletxt", true);

// 写一行,并且带有新行字符。

tfWriteLine("Testing 1, 2, 3") ;

// 向文件写三个新行字符。

tfWriteBlankLines(3) ;

// 写一行。

tfWrite ("This is a test");

tfClose();

}

读取文件

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

任务 方法

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

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

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

如果使用 Read 或 ReadLine 方法,并且想跳过数据的特殊部分,则使用 Skip 或 SkipLine 方法。read 方法的结果文本存在一个字符串中,该字符串可以显示在一个控件中,也可以用字符串函数(如 Left、Right 和 Mid)来分析,连接等等。

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

Sub ReadFiles

Dim fso, f1, ts, s

Const ForReading = 1

Set fso = CreateObject("ScriptingFileSystemObject")

Set f1 = fsoCreateTextFile("c:\testfiletxt", True)

' 写一行。

ResponseWrite "Writing file <br>"

f1WriteLine "Hello World"

f1WriteBlankLines(1)

f1Close

' 读取文件的内容。

ResponseWrite "Reading file <br>"

Set ts = fsoOpenTextFile("c:\testfiletxt", ForReading)

s = tsReadLine

ResponseWrite "File contents = '" & s & "'"

tsClose

End Sub

下面的代码示范了在 Visual Basic Scripting Edition 中做同样的事:

function ReadFiles()

{

var fso, f1, ts, s;

var ForReading = 1;

fso = new ActiveXObject("ScriptingFileSystemObject");

f1 = fsoCreateTextFile("c:\\testfiletxt", true);

// 写一行。

ResponseWrite("Writing file <br>");

f1WriteLine("Hello World");

f1WriteBlankLines(1);

f1Close();

// 读取文件的内容。

ResponseWrite("Reading file <br>");

ts = fsoOpenTextFile("c:\\testfiletxt", ForReading);

s = tsReadLine();

ResponseWrite("File contents = '" + s + "'");

tsClose();

}

移动、复制和删除文件

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

任务 方法

移动文件 FileMove 或 FileSystemObjectMoveFile

复制文件 FileCopy 或 FileSystemObjectCopyFile

删除文件 FileDelete 或 FileSystemObjectDeleteFile

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

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

Sub ManipFiles

Dim fso, f1, f2, s

Set fso = CreateObject("ScriptingFileSystemObject")

Set f1 = fsoCreateTextFile("c:\testfiletxt", True)

ResponseWrite "Writing file <br>"

'写一行。

f1Write ("This is a test")

'关闭文件。

f1Close

ResponseWrite "Moving file to c:\tmp <br>"

'获取 C 的根目录(C:\)中的文件的句柄。

Set f2 = fsoGetFile("c:\testfiletxt")

'把文件移动到 \tmp 目录。

f2Move ("c:\tmp\testfiletxt")

ResponseWrite "Copying file to c:\temp <br>"

'把文件复制到 \temp 目录。

f2Copy ("c:\temp\testfiletxt")

ResponseWrite "Deleting files <br>"

'获得文件当前位置的句柄。

Set f2 = fsoGetFile("c:\tmp\testfiletxt")

Set f3 = fsoGetFile("c:\temp\testfiletxt")

'删除文件。

f2Delete

f3Delete

ResponseWrite "All done!"

End Sub

下面的代码示范了在 Visual Basic Scripting Edition 中做同样的事:

function ManipFiles()

{

var fso, f1, f2, s;

fso = new ActiveXObject("ScriptingFileSystemObject");

f1 = fsoCreateTextFile("c:\\testfiletxt", true);

ResponseWrite("Writing file <br>");

// 写一行。

f1Write("This is a test");

// 关闭文件。

f1Close();

ResponseWrite("Moving file to c:\\tmp <br>");

// 获取 C 的根目录(C:\)中的文件的句柄。

f2 = fsoGetFile("c:\\testfiletxt");

// 把文件移动到 \tmp 目录。

f2Move ("c:\\tmp\\testfiletxt");

ResponseWrite("Copying file to c:\\temp <br>");

// 把文件复制到 \temp 目录。

f2Copy ("c:\\temp\\testfiletxt");

ResponseWrite("Deleting files <br>");

// 获得文件当前位置的句柄。

f2 = fsoGetFile("c:\\tmp\\testfiletxt");

f3 = fsoGetFile("c:\\temp\\testfiletxt");

// 删除文件。

f2Delete();

f3Delete();

ResponseWrite("All done!");

}

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

以上就是关于什么是FSO文本读写全部的内容,包括:什么是FSO文本读写、什么是FSO如何开启FSO如何关闭 在哪里知道是否开启FSO、什么是FSO/FPSO等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:聚客百科

原文地址: http://juke.outofmemory.cn/life/3656696.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-24
下一篇 2023-04-24

发表评论

登录后才能评论

评论列表(0条)

保存