code288a.txt

来自「VB大全(精华版)源代码」· 文本 代码 · 共 64 行

TXT
64
字号
Public Sub Main()
  Dim FileNames As String, DirName As String
  Dim DirArray() As String, FileArray() As String
  Dim TotalDirs As Integer, TotalFiles As Integer
  Dim iLoop As Integer

  DirName = "c:\"
  FileNames = Dir(DirName, vbNormal + vbDirectory)
  Do While FileNames <> ""
    If FileNames <> "." And FileNames <> ".." Then
      If (GetAttr(DirName & FileNames) And vbDirectory) = _
        vbDirectory Then
        TotalDirs = TotalDirs + 1
        ReDim Preserve DirArray(TotalDirs)
        DirArray(TotalDirs) = FileNames
      Else
        TotalFiles = TotalFiles + 1
        ReDim Preserve FileArray(TotalFiles)
        FileArray(TotalFiles) = FileNames
      End If
    End If
    FileNames = Dir
  Loop
  Quick_Sort DirArray, 0, UBound(DirArray)
  Quick_Sort FileArray, 0, UBound(FileArray)

  Debug.Print "---Directories---"
  For iLoop = 0 To UBound(DirArray)
    Debug.Print DirArray(iLoop)
  Next
  Debug.Print "---Files---"
  For iLoop = 0 To UBound(FileArray)
    Debug.Print FileArray(iLoop)
  Next
End Sub

Public Sub Quick_Sort(SortArray As Variant, _
                      ByVal First As Integer, _
                      ByVal Last As Integer)
  Dim Low As Integer, High As Integer
  Dim Temp As Variant, List_Separator As Variant
   
  Low = First
  High = Last
  List_Separator = UCase(SortArray((First + Last) / 2))
  Do
    Do While (UCase(SortArray(Low)) < List_Separator)
      Low = Low + 1
    Loop
    Do While (UCase(SortArray(High)) > List_Separator)
      High = High - 1
    Loop
    If (Low <= High) Then
      Temp = SortArray(Low)
      SortArray(Low) = SortArray(High)
      SortArray(High) = Temp
      Low = Low + 1
      High = High - 1
    End If
  Loop While (Low <= High)
  If (First < High) Then Quick_Sort SortArray, First, High
  If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?