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 + -
显示快捷键?