数码资讯
按数组对文件进行排序
当你得到一个列表使用FileSystemObject对象文件,你有没有发现他们无法控制的,如通过扩展名排序按文件大小排序,排序等等,让我们试着挑选出他们与孩子的数组。 如果你想按名称排序,这将非常简单,但是如果你想按文件大小或文件创建时间等排序,这会有点麻烦。 下面的代码展示了如何选择排序方法来实现
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
当你得到一个列表使用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
下一个
%>
如果你想按名称排序,这将非常简单,但是如果你想按文件大小或文件创建时间等排序,这会有点麻烦。
下面的代码展示了如何选择排序方法来实现我们的目标,单击排序,两次反向。
档案整理示范
<
设置演示目录,:
常量目录
按常量定义排序
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
下一个
%>
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。