编程教程
你的位置: 中国个人站长站 -- 网络编程 -- ASP教程 -- 教程正文 奇妙的文件系统对象组件
推荐位

奇妙的文件系统对象组件

中国个人站长站 ASP教程 点击数: 更新时间:2007-8-27 5:58:15
ng

' 检查是是否要建立文件夹
if not fso.folderexists(Server.MapPath(strDir)) then
set f = fso.CreateFolder(Server.MapPath(strDir))
else
set f = fso.GetFolder(Server.MapPath(strDir))
end if

' 创建并写入新文件
set file = fso.Createtextfile(f.path & "\" & strNewFileName)
file.write(strText)

set f = nothing
file.close
set file = nothing

' 删除旧文件
fso.DeleteFile(path & "\" & rst("FileName") & i)

' 清除
set fso = nothing
%>

我们在这里特别举这个例子就是因为FSO在这个功能上存在缺陷,所以我们必须分两步走。首先新建一个文件,注意,由于用户可能将文件改名到另一个目录下,所以我们必须判断新目录是否存在(就是if not fso.folderexists那段代码)。新文件建好后,用fso.DeleteFile 将旧文件删除。


FSO功能上的弱点

FSO还是存在一些弱点。例如,它在处理二进制文件的时候就不那么方便。对于象MS Word文档,图像等许多文件,你只能执行移动,删除等操作,而不能打开,读/写。当然,FSO提供了另外一套操作它们的方法(具体请参考MSDN),但始终不如我们惯用的open方法那么顺手。

另一个不足与文件大小有关。由于FSO操作需要经常地将文件内容读入内存,文件有多大,就需要多少内存,所以如果你要处理大文件或一大堆小文件的话,内存的开销会很可观,可能会对系统运行速度有影响。解决办法是将大文件分段处理,并记住经常地清除内存(把变量设为null或"",set 对象=nothing)。

此外,FSO不能改变文件和文件夹的属性。例如,在建立guestbook的例子中,其实有一个安全机制我们没有实现,就是将保存信息的文件的属性设为只读,只有在更新的时候才临时改为可写,写完后再改回只读,许多用CGI或Perl写的guestbook程序都有这种功能,可惜用FSO无法实现该功能。


FSO还能干些什么?

总的来说,FSO还是很强大的。FSO还有一些一般没人注意到的很酷的功能。下面列出一些,当你看完可能会说“呀,我以前怎么不知道。”呵呵。

GetSpecialFolder 方法
返回一个特殊的Windows文件目录:Windows安装文件目录,系统文件目录,临时文件目录。使用方法分别是:FSO.GetSpecialFolder([0, 1, or 2>)

GetTempName 方法
返回一个随机生成的临时文件或文件夹。象处理上面所说的将大文件分割处理的时候这个功能特别有用。(讨饭猫:如果Win98常死机的话,我们经常可以在Windows根目录下看到大量的长度为0的随机文件名,估计就是这个用途)

GetAbsolutePathName 方法
返回一个文件夹的绝对路径(有点象Server.MapPath)。例如,FSO.GetAbsolutePathName("region")会返回象"c:\mydocs\myfolder\region" 这样的路径,具体取决于你的当前目录。

GetExtensionName 方法
返回文件的扩展名。例如 FSO.GetExtensionName("c:\docs\test.txt") 返回 "txt"。

GetBaseName 和 GetParentFolder 方法
分别返回根目录名和父目录名。例如 FSO.GetParentFolder ("c:\docs\mydocs") 返回 "docs"。

Drives 属性
返回本机上所有驱动器的集合。如果你要建立一个explorer风格的界面,这个功能再有用不过。

记住要建立一套完善的错误信息处理机制,因为上面这些功能如果遇到象文件夹不存在之类错误时,会返回一些可恶的错误代码。

看到这里,是不是觉得FSO有用呢?实际上,我们所提到的内容只是冰山的一角。在Enfused等大站点上,还可以看到更多与此有关话题的讨论。

上一页  [1] [2] [3] 

教程录入:swh    责任编辑:swh 
个人站长站与你风雨同舟!
本站所提供的资源均来源于互联网,如有侵权行为,请与本站管理员联系,我们会第一时间删除!
·如果您发现《奇妙的文件系统对象组件》文章有错误,也请通知我们修改!
联系邮箱chinageren#126.com,谢谢支持!
站内搜索:
广告服务 | 友情链接 | 联系我们 | 免责声明 | 用户留言 | 网站导航
版权所有:中国个人站长站 2007-2008 未经授权禁止复制或建立镜像 客服QQ号:112731235
copyright © 2007-2008 www.ChinaGeRen.com online services. all rights reserved. 苏ICP备05000059号