当你得到一个列表使用FileSystemObject对象文件,你有没有发现他们无法控制的,如通过扩展名排序按文件大小排序,排序等等,让我们试着挑选出他们与孩子的数组。

如果你想按名称排序,这将非常简单,但是如果你想按文件大小或文件创建时间等排序,这会有点麻烦。

下面的代码展示了如何选择排序方法来实现我们的目标,单击排序,两次反向。






档案整理示范







<

设置演示目录,:


常量目录


按常量定义排序

const file_name = 0 '的名字…类似

const file_ext = 1

const file_type = 2

const file_size = 3

const file_created = 4

const file_modified = 5

const file_accessed = 6


按默认名称获取排序顺序


req =请求(sortBy )

If Len (req) < 1 Then sortBy = 0 Else sortBy = CInt (req)

req =请求(priorsort )

如果Len(REQ)<1然后priorsort = - 1其他priorsort = Cint(需求)


按相反顺序排列

如果sortBy = priorsort然后

反=真

priorsort = - 1

其他的

反= false

priorsort = sortBy

最后如果


然后我们启动真正的代码。


路径= server.mappath(目录)


设置FSO = CreateObject(脚本。FileSystemObject )

集thecurrentfolder = fso.getfolder(路径)

curfiles = thecurrentfolder文件集。


把这些文件做一个循环


昏暗的文件()

ReDim文件(500)我有一个任意大小的

currentslot = - 1开始之前的第一槽


我们将文件中的所有相关信息放入数组中。


每个在curfiles FileItem

名= FileItem。名字

FEXT = instrrev(名、,)

如果FEXT<1然后FEXT = 别的FEXT =中(fname FEXT + 1)

FTYPE = FileItem。型

fsize = FileItem大小。

fcreate = fileitem.datecreated

fileitem.datelastmodified FMOD =

faccess = fileitem.datelastaccessed

currentslot = currentslot + 1

如果currentslot > UBound(文件)然后

ReDim Preserve文件(currentslot + 99)

最后如果

在数组中

文件(currentslot)=阵列(名、远端FTYPE,fcreate fsize,,Fmod,faccess)

下一个


现在它在数组中,下一步




文件filecount = currentslot数

ReDim Preserve文件(currentslot)


分类

(8弦)


如果VarType(文件(0)(sortBy))= 8

如果反向,则为= 1其他类型= 2字符顺序。

其他的

如果反向,则= 3其他类型= 4 '的数量,时间。

最后如果


我= filecount 0步1

该文件(0)=(sortBy)

minmaxslot = 0

对于j = 1到i

选择案例类

案例1

马克=(strcomp(文件(J)(sortBy),极大极小,vbtextcompare)<0)

案例2

马克=(strcomp(文件(J)(sortBy),极大极小,vbtextcompare)> 0)

案例3

马克=(文件(J)(sortBy)< minmax)

案例4

马克=(文件(J)(sortBy)> MinMax)

最后选择

If mark Then

极小极大=文件(J)(sortBy)

minmaxslot = J

最后如果

下一个


如果minmaxslot <>然后我


临时文件(minmaxslot)=

文件(minmaxslot)=文件(我)

(我)=临时文件

最后如果

下一个

结束


%>



>








功能度假村(其中)

{

document.dosort.sortby.value =;

Document.doSort.submit();

}








显示目录下的文件





单击排序,然后单击反向排序。







文件名

扩展名

类型

大小

建立时间

修改最后一次

上次访问时间



<


我filecount = 0

响应。写vbnewline

J = 0,UBound(文件(我))

响应。写文件(我)(J)vbnewline

下一个

响应。写vbnewline

下一个

%>