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

ASP
ASP基础讲座(下)
解决IIS5 HTTP500内部错误
ASP 3.0高级编程(四十六)
ASP 3.0高级编程(四十五)
ASP 3.0高级编程(四十四)
ASP 3.0高级编程(四十三)
ASP 3.0高级编程(四十二)
ASP 3.0高级编程(四十一)
ASP 3.0高级编程(三十九)
ASP 3.0高级编程(三十八)
ASP 3.0高级编程(三十七)
ASP 3.0高级编程(三十六)
ASP 3.0高级编程(三十五)
ASP 3.0高级编程(三十四)
ASP 3.0高级编程(三十三)
ASP 3.0高级编程(三十二)
ASP 3.0高级编程(三十一)
ASP错误代码说明
jscript错误代码及相应解释大全
ASP错误处理

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 72 ::
收藏到网摘: 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
%>