zoukankan      html  css  js  c++  java
  • asp fso读取文件夹,如何按照(1:按创建时间 2:按访问时间 3:按修改时间 4:按名称)排序(20080918,11:19:18)

    读取一个文件夹或子文件夹内的所有文件范例<br><br>
    <%
    Dim objFSO,objFolder,objFile,FF '声明 objFSO 变量存放对象实例
    FF = Server.MapPath("./images")
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    If objFSO.FolderExists(ff) Then
    Response.write "文件夹 "&ff&" 里所有的文件:<br>"
    Set objFolder = objFSO.GetFolder(ff)
    For Each objFile in objFolder.Files
    Response.Write objFile.Name & "<br>"
    Next
    Else
    Response.Write "文件夹"&ff&"不存在,无法读取相关信息!"
    End If
    Set objFolder = Nothing
    Set objFSO = Nothing '释放 FileSystemObject 对象实例内存空间
    %>
    </body></html>

    但是怎么排序呢??

    Private Type typFlieDate
    Name As String
    CreatedDate As Date
    AccessedDate As Date
    ModifiedDate As Date
    End Type

    Private myFiles() As typFlieDate '包含文件的数组

    Private Sub Command1_Click()
    Dim n As Integer
    n = GetFolderFiles("d:/", 1)
    End Sub

    Private Function GetFolderFiles(Path As String, OrderBy As Integer) As Integer
    'path 文件夹路径
    'orderby 排序依据 1:按创建时间 2:按访问时间 3:按修改时间 4:按名称
    '返回文件夹中文件的个数
    '如果要计算子文件夹可以通过 fldr.SubFolders 访问,方法类似

    Dim tmpFile As typFlieDate
    Dim n As Integer, i As Integer, j As Integer
    Dim fso As New FileSystemObject
    Dim fldr As Folder
    Dim fls As Files
    Dim fl As File

    '读去文件
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fldr = fso.GetFolder(Path)
    Set fls = fldr.Files
    n = fls.Count
    If n > 0 Then
    ReDim myFiles(n - 1)
    i = 0
    For Each fl In fls
    myFiles(i).Name = fl.Name
    myFiles(i).AccessedDate = fl.DateLastAccessed
    myFiles(i).CreatedDate = fl.DateCreated
    myFiles(i).ModifiedDate = fl.DateLastModified
    i = i + 1
    Next
    '排序 --- 升序
    For i = 0 To n - 1
    For j = i + 1 To n - 1
    Select Case OrderBy
    Case 1 '创建时间
    If myFiles(i).CreatedDate > myFiles(j).CreatedDate Then
    tmpFile = myFiles(i)
    myFiles(i) = myFiles(j)
    myFiles(j) = tmpFile

    ' tmpFile.Name = myFiles(i).Name
    ' tmpFile.AccessedDate = myFiles(i).AccessedDate
    ' tmpFile.CreatedDate = myFiles(i).CreatedDate
    ' tmpFile.ModifiedDate = myFiles(i).ModifiedDate
    '
    ' myFiles(i).AccessedDate = myFiles(j).AccessedDate
    ' myFiles(i).CreatedDate = myFiles(j).CreatedDate
    ' myFiles(i).ModifiedDate = myFiles(j).ModifiedDate
    ' myFiles(i).Name = myFiles(j).Name
    '
    ' myFiles(j).AccessedDate = tmpFile.AccessedDate
    ' myFiles(j).CreatedDate = tmpFile.CreatedDate
    ' myFiles(j).ModifiedDate = tmpFile.ModifiedDate
    ' myFiles(j).Name = tmpFile.Name
    End If

    Case 2 '访问时间
    If myFiles(i).AccessedDate > myFiles(j).AccessedDate Then
    tmpFile = myFiles(i)
    myFiles(i) = myFiles(j)
    myFiles(j) = tmpFile
    End If
    Case 3 '修改时间
    If myFiles(i).ModifiedDate > myFiles(j).ModifiedDate Then
    tmpFile = myFiles(i)
    myFiles(i) = myFiles(j)
    myFiles(j) = tmpFile
    End If
    Case 4 '名称
    If UCase(myFiles(i).Name) > UCase(myFiles(j).Name) Then
    tmpFile = myFiles(i)
    myFiles(i) = myFiles(j)
    myFiles(j) = tmpFile
    End If
    End Select
    Next j
    Next i
    End If
    GetFolderFiles = n
    End Function
  • 相关阅读:
    爱上经典之《大公鸡》
    爱上经典之罗大佑《光阴故事》
    wamp安装Zend Optimizer 报错
    【转】oracle客户端精简绿色版环境变量配置
    请问C#中string是值传递还是引用传递?
    ArcEngine 固定比例放大缩小
    【转】POSITION: absolute,与 relative区别
    浪潮巅峰
    【转】使用远程桌面鼠标移动缓慢问题的解决方法
    【转】访问 IIS 元数据库失败
  • 原文地址:https://www.cnblogs.com/zerogo/p/2209241.html
Copyright © 2011-2022 走看看