Vbscript 如何在asp中对目录中的列表文件进行分页?

Vbscript 如何在asp中对目录中的列表文件进行分页?,vbscript,asp-classic,Vbscript,Asp Classic,我们正在使用folder=objFSO.GetFolder()获取带有目录的文件列表 然后,我们通过文件夹.Files数组为每个输出文件名列表 我们已经到了一个地步,文件夹中有数千个文件,而且速度非常慢,所以我们想在屏幕上添加一些分页。一次显示500个文件。我不知道这是否可能,所有的谷歌搜索都没有帮助 有人能给我指出正确的方向吗?首先,关于文件列表,你能得到列表并将结果保存(缓存)到某个地方以加速重复访问吗?这是我们在.NET中获取大型文件列表时使用的一种方法(我们使用ASP.NET网页,所以我

我们正在使用
folder=objFSO.GetFolder()
获取带有目录的文件列表

然后,我们通过
文件夹.Files
数组为每个
输出文件名列表

我们已经到了一个地步,文件夹中有数千个文件,而且速度非常慢,所以我们想在屏幕上添加一些分页。一次显示500个文件。我不知道这是否可能,所有的谷歌搜索都没有帮助


有人能给我指出正确的方向吗?

首先,关于文件列表,你能得到列表并将结果保存(缓存)到某个地方以加速重复访问吗?这是我们在.NET中获取大型文件列表时使用的一种方法(我们使用ASP.NET网页,所以我们只使用WebCache.Set,但我想如果需要,您可以将其写入文本文件)

我看到一些轶事证据表明,FSO在列出大量文件时速度相当慢:

一个没有考虑的问题是速度。我有一个小的VB应用程序,它使用FileSystemObject循环遍历文件夹中的文件。浏览给定文件夹中的每个文件(约2200个文件)大约需要5-7分钟。当我切换到使用DIR()命令时,我可以在大约6-10秒内遍历文件。DIR()也有一些限制,但速度因素是一个巨大的考虑因素,这与FileSystemObject不符

显然,一旦你有了这个列表,你就会以偏移量/页面大小一次循环500次

编辑:我从我找到的两篇aspfaq.com文章(|)中提供了一个关于如何使用WScript.Shell实现此目的的示例


几年前,我编写了一个在线文件浏览器(可用),发现它读取的文件大小减慢了FSO文件列表的速度。我一跳过这一步,上市就一闪而过


对于分页,我建议使用文件名创建一个“断开连接的”ado记录集,然后将其用于名称的实际导航。。。然后你有了内置的分页功能。。。以及排序和搜索。如果您对代码示例感兴趣,请告诉我。

您是在客户端使用FSO对象还是在服务器端使用FSO对象?对不起,这是服务器端脚本。请注意:您真的需要翻阅数千项吗?过滤最多100个项目的结果集不是更好吗?VBScript非常有限。。编写小的ASP.NET页面来实现这一点非常简单,然后您可以使用经典的ASP.NET“消费”它。您的web服务器也支持ASP.NET吗?谢谢您的回复。更改数据不是一个选项,目录会不断地添加和删除文件。你还有别的想法吗?我的担心似乎是真的。嗨,阿什,没问题。那么我认为WScript.Shell将是下一个最好的选择。我已经包含了上面的一个示例,这有帮助吗?你能运行它吗?你能发布一些代码生成一个列表而不读取文件大小吗?实际上,是子文件夹大小导致了真正的速度减慢。。。我已经有一段时间没碰过这东西了。
Set objWShell = CreateObject("WScript.Shell") 
Set objCmd = objWShell.Exec("%COMSPEC% /C dir c:\") 
strPResult = objCmd.StdOut.Readall()