如果要获取网络上一个文件夹下的所有文件,可以用写程序的方式,依靠服务环境的支持遍历整个目录,按照一定的格式(比如数组,XML)返回给应用程序。其实还有更简单的解决方案:利用IIS。
IIS有一个设置,可以开放出一个目录的列表权限,这时候你用浏览器访问这个目录,就会得到这个目录下的文件列表(当然格式是HTML)...HTML?你是不是想到什么了?对,我们完全可以把它当作一个String,从中抽取到需要的数据。
下面说说在Flash中的做法:
先用LoadVars将原始的HTML载入,再匹配字符串,得到包含链接数据的数组:
function extraLinks(s:String):Array {//抽取链接
var a:Array=new Array();
var ss:Array=s.split("</A>");
var sss:Array=new Array();
var ssss:Array=new Array();
for(var i:Number=0;i<ss.length;i++) {
sss=ss[i].split('HREF="');
if(sss[1]!=undefined) {
ssss=sss[1].split('">');
if(ssss.length>0) {
a.push(ssss.toString());
}
}
}
a.reverse();
a.pop();
a.reverse();
return a;
}
现在已经拿到文件列表和链接的数组了,剩下的事就是显示出来,具体过程就不再阐述了。
IIS有一个设置,可以开放出一个目录的列表权限,这时候你用浏览器访问这个目录,就会得到这个目录下的文件列表(当然格式是HTML)...HTML?你是不是想到什么了?对,我们完全可以把它当作一个String,从中抽取到需要的数据。
下面说说在Flash中的做法:
先用LoadVars将原始的HTML载入,再匹配字符串,得到包含链接数据的数组:
function extraLinks(s:String):Array {//抽取链接
var a:Array=new Array();
var ss:Array=s.split("</A>");
var sss:Array=new Array();
var ssss:Array=new Array();
for(var i:Number=0;i<ss.length;i++) {
sss=ss[i].split('HREF="');
if(sss[1]!=undefined) {
ssss=sss[1].split('">');
if(ssss.length>0) {
a.push(ssss.toString());
}
}
}
a.reverse();
a.pop();
a.reverse();
return a;
}
现在已经拿到文件列表和链接的数组了,剩下的事就是显示出来,具体过程就不再阐述了。
本文介绍了一种通过配置IIS来开放目录列表权限的方法,从而实现使用浏览器直接获取指定文件夹内所有文件的列表。文章详细展示了如何在Flash中通过解析返回的HTML内容来提取文件链接。
556

被折叠的 条评论
为什么被折叠?



