当前位置: 首页 > 图文教程 > 网络编程 > ASP > FSO+递归生成文件列表(xml)

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

ASP 中的 FSO+递归生成文件列表(xml)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 119 ::
收藏到网摘: n/a

本来生成这个xml文档是为了开发一个ftp的搜索,后来由于没有资料参考怎么搜索xml文档,也就放弃了.其中最重要的是递归的算法.生成文件列表的速度很快.这个程序可以用于生成播放列表之类的东东.需要IIS的FSO组件支持.生成类似下面的XML文档
<?xml version="1.0" encoding="gb2312"?>
<ftp ip="10.1.228.228">
<DIR path="Game">
<DIR path="仙剑奇侠传2(save)">
<file size="346294">complete_camel.rar</file>
<file size="1886286">complete_funlove.rar</file>
</DIR>
</DIR>
</ftp>
make_file_list.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
'######################################'
'## Copyright (C) 2003 醉雨梧桐 All rights reserved. ##'
'## Powered by 醉雨梧桐 ##'
'## http://btyz.51web.cn/ ##'
'## [email protected] ##'
'######################################'
Dim objFo,objF,objAF,objFxml
set objFo=CreateObject("Scripting.FileSystemObject") '对象
set objFxml=objFo.OpenTextFile("G:\My Documents\http\Personal Works\FTP_Search\ftp.xml",2) '打开文件
objFxml.WriteLine("<?xml version=""1.0"" encoding=""gb2312""?>")
objFxml.WriteLine("<ftp ip=""10.1.228.228"">")
Call xml_list("F:\") '开始列表
objFxml.WriteLine("</ftp>")
Response.Write("List is OK!) '列表成功

Function xml_list(DirName)
set objFS=objFo.GetFolder(DirName)
set objASD=objFS.SubFolders
For Each OneDir in objASD
strFdName=Trim(OneDir.Name)
'下面所列的文件夹不生成在列表中(系统文件或者隐藏文件)
If strFdName<>"Config.Msi" EQV strFdName<>"RECYCLED" EQV strFdName<>"RECYCLER" EQV strFdName<>"System Volume Information" Then
OneDirName=xml_format(OneDir.Name) '对&进行转义
objFxml.WriteLine("<DIR path="""&OneDirName&""">") '生成<DIR path="文件夹"></DIR>
SDirName=DirName&"\"&OneDir.Name '下一个递归的地址
Call xml_list(SDirName) '调用递归
objFxml.WriteLine("</DIR>")
End If '结束判断
Next
set objSF=objFS.Files
For Each OneFile in objSF '列出文件
objFxml.WriteLine("<file size="""&OneFile.size&""">"&OneFile.Name&"</file>") '生成<file>文件名</file>
Next
End Function
'去掉XML不允许的字符
Function xml_format(strDirName)
strDirName=Replace(strDirName,"&","&") '把半角的&转化为&
xml_format=strDirName
End Function
%>