取得某个目录底下所有文件大小总和

  •   2008-03-17/16:58
  • 含目录底下的子目录,求得其所有文件大小之总和
        其第二个叁数的目的是起始Static型态的totbyte,呼叫它时,请不要传叁数进去
    Private Sub Command1_Click()
    Dim tot As Long
    tot=GetDirTotalByte("c:\tools\")
    Debug.Printtot
    End Sub

    Private Function GetDirTotalByte(CurrentPath As String,Optionali As Long) As Long
    Statictotbyte As Long
    Dim nI As Integer,nDirectory As Integer
    Dim sFileName As String,sDirectoryList() As String
    注释:Initialtotbyte,ifitisnottheRecursivecallthefunction
    If i<>1 Then
    totbyte=0
    End If
    注释:Firstlistallnormalfilesinthisdirectory
    sFileName=Dir(CurrentPath,vbNormal+vbHidden+vbReadOnly+vbSystem+vbArchive)
    Do While sFileName<>""
    totbyte=totbyte+FileLen(CurrentPath+sFileName)
    sFileName=Dir
    Loop
    注释:Nextbuildtemporarylistofsubdirectories
    sFileName=Dir(CurrentPath,vbDirectory)
    Do While sFileName<>""
    注释:Ignorecurrentandparentdirectories
    If sFileName<>"." And sFileName<>".." Then
    注释:Ignorenondirectories
    If GetAttr(CurrentPath&sFileName)_
    And vbDirectory Then
    nDirectory=nDirectory+1
    ReDimPreservesDirectoryList(nDirectory)
    sDirectoryList(nDirectory)=CurrentPath&sFileName
    End If
    End If
    sFileName=Dir
    Loop
    注释:Recursivelyprocesseachdirectory
    For nI=1 To nDirectory
    GetDirTotalBytesDirectoryList(nI)&"\",1
    Next nI
    GetDirTotalByte=totbyte
    End Function

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多