⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0048.htm

📁 asp教程宝典``还不错
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>

<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
    <p align="center"><big><strong>奇妙的文件系统对象组件</strong></big></p>

<div align="right">---摘自《ChinaAsp网络》(文/讨饭猫)</div><SPAN class=smallFont><SPAN class=smallFont>
注意:我们在下文中要操作的是Web服务器的文件系统,所以首先要确定你对该服务器有足够的权限。如果你不想麻烦你的Web Master,你也可以用微软的Personal Web Server来进行你的试验。<br>
<br>
FSO对象包括<br>
驱动器对象(Drive Object)用来存取本地盘或网络盘,<br>
文件系统对象(FielSystemObject 简称FSO)是用来存取文件系统<br>
文件夹对象(Folder Object)用于存取文件夹的各种属性<br>
文本流对象(TextStream Object 简称TS)存取文件内容<br>
<br>
使用以上对象,你的确可以在一台电脑上为所欲为,但同样也可能会造成灾难,所以在使用FSO的时候要注意安全,特别是在Web应用中,Web服务器中会存储诸如用户信息,日志文件等等重要信息,更要格外小心。在本文中,我们主要探讨FSO对象和TextStream对象<br>
<br>
(FSO由Microsoft提供,所以本文内容只适用于Windows操作系统下的ASP编程。)<br>
 <br>
<br>
<br>
如何使用FSO?<br>
<br>
要开始干坏事之前,首先要学会建立FSO。如果你曾经在ASP中创建过对象,那么这事好办:<br>
<br>
&lt;%<br>
Set fso = Server.CreateObject(&quot;Scripting.FileSystemObject&quot;)<br>
%&gt;<br>
<br>
现在我们已经建立了FSO,并赋值给变量fso,接下来就可以使用我们熟悉的object.method方法来使用它了(如果你对对象的操作不熟悉,请自己去补课,这里恕不奉陪)。在下面的例子中,主要使用的是fso.method和fso.property。<br>
<br>
(FSO模块来自微软提供的脚本运行库scrrun.dll中,许多应用系统都会调用它,例如Access,Word等等,并非专为ASP应用开发。)<br>
<br>
下面是我们要用到的部分FSO方法:<br>
<br>
CopyFile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;拷贝一个或多个文件<br>
CreateTextFile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建一个文件并返回一个TS对象<br>
DeleteFile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;删除一个文件<br>
OpenTextFile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打开一个文件并返回一个可用于读和添加的TS对象。<br>
<br>
要获得完整的FSO方法,请参看MSDN。下面看个例子吧。<br>
 <br>
<br>
<br>
写文件<br>
<br>
设想你要建立一个简单的guestbook,而又不想用复杂的数据库,或者你的ISP限制你用数据库,大可以用FSO来干。<br>
假设你要从用户提交的form中收集信息,html这样写.<br>
<br>
&lt;html&gt;<br>
&lt;body&gt;<br>
&lt;form action=&quot;formhandler.asp&quot; method=&quot;post&quot;&gt;<br>
&lt;input type=&quot;text&quot; size=&quot;10&quot; name=&quot;username&quot;&gt;<br>
&lt;input type=&quot;text&quot; size=&quot;10&quot; name=&quot;homepage&quot;&gt;<br>
&lt;input type=&quot;text&quot; size=&quot;10&quot; name=&quot;Email&quot;&gt;<br>
&lt;/form&gt;<br>
&lt;/body&gt;<br>
&lt;/html&gt;<br>
<br>
再看看用于处理这个form的formhandler.asp。<br>
<br>
&lt;%<br>
' 获取 form信息<br>
strName = Request.Form(&quot;username&quot;)<br>
strHomePage = Request.Form(&quot;homepage&quot;)<br>
strEmail = Request.Form(&quot;Email&quot;)<br>
<br>
' 建立fso对象<br>
Set fso = Server.CreateObject(&quot;Scripting.FileSystemObject&quot;)<br>
<br>
path = &quot;c:\temp\test.txt&quot;<br>
ForReading = 1, ForWriting = 2, ForAppending = 3<br>
<br>
' 打开文件<br>
set file = fso.opentextfile(path, ForAppending, TRUE)<br>
<br>
' 把信息写入文件<br>
file.write(strName) &amp; vbcrlf<br>
file.write(strHomePage) &amp; vbcrlf<br>
file.write(strEmail) &amp; vbcrlf<br>
<br>
' 关闭并清除对象<br>
file.close<br>
set file = nothing<br>
set fso = nothing<br>
<br>
看看上面,OpenTextFile方法返回了一个TS对象,TS对象提供了例如Write,ReadLine,SkipLine等一系列的方法来操作文件内容。VB常量vbcrlf是换行符。<br>
<br>
(我们在OpentextFile方法中指定了TRUE参数,通知系统当文件不存在时生成一个新文件。如果不用TRUE,当文件不存在时就会返回一个难看的错误提示。)<br>
<br>
现在打开c:\temp\test.txt,你可以看到如下信息:<br>
<br>
User's name<br>
User's home page<br>
User's email<br>
<br>
当然,实际内容是用户的输入。哈,一个简单的guestbook诞生啦。<br>
 <br>
<br>
<br>
读文件<br>
<br>
好,现在我们的guestbook里已经存储了不少用户的信息了,如果这时一个用户想看看我们访客的信息,我们得把信息再还原出来。由于不是数据库,得自己动手来解决分段问题。看看test.txt,每三行就是一个用户的信息,好办:<br>
<br>
&lt;%<br>
' 建立fso对象<br>
set fso = Server.Createobject(&quot;Scripting.FileSystemObject&quot;)<br>
path = &quot;c:\temp\test.txt&quot;<br>
<br>
'打开文件<br>
set file = fso.opentextfile(path, 1)&nbsp;&nbsp;&lt;-- 用于读<br>
<br>
do until file.AtEndOfStream<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.write(&quot;Name: &quot; &amp; file.ReadLine &amp; &quot; &quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.write(&quot;Home Page: &quot; &amp; file.ReadLine &amp; &quot; &quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.write(&quot;Email: &quot; &amp; file.ReadLine &amp; &quot;&lt;p&gt;&quot;)<br>
loop<br>
<br>
' 关闭并清除<br>
file.close<br>
set file = nothing<br>
set fso = nothing<br>
%&gt;<br>
<br>
(这里我们只是将信息简单输出,你可以根据实际情况作调整,包括输出到表格和DHTML form中。)<br>
<br>
ReadLine方法用于从文件中读取一行,下次调用ReadLine方法将读取下一行。AtEndOfStream是TS对象的一个属性,让你知道是否到达文件结尾。<br>
<br>
假设由于某种原因文件有问题,例如某个用户只有两行,那么我们会得到以下错误信息:<br>
<br>
Server object error 'ASP 0177 : 800a003e'<br>
<br>
所以加入一些错误处理代码是必要的。<br>
 <br>
<br>
<br>
FSO的权限问题<br>
<br>
现在我们已经对FSO有一些基本认识了,是时候来讨论一下FSO的权限问题。FSO的读取权限就是创建FSO的账号所拥有的权限。如果某人从Internet上使用这个页面,那么创建FSO的就是Internet账号。如果你用administrator本机登录并访问页面,那么建立的FSO就拥有administrator的权限。<br>
<br>
Internet账号(IUSER_机器名)通常只有读权限,这意味着用户永远无法写guestbook文件。所以必须想办法解决。<br>
<br>
第一个办法,是让用户首先要用一个有写权限的账号登录。但实际上所有从Internet访问的用户都是以anonymous登录,所以这个方法比较难实现。<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -