龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

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

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
含目录底下的子目录,求得其所有文件大小之总和其第二个叁数的目的是起始Static型态的totbyte,呼叫它时,请不要传叁数进去 PrivateSubCommand1_Click() DimtotAsLong tot=GetDirTotalByte("c:ools") Debug.
含目录底下的子目录,求得其所有文件大小之总和其第二个叁数的目的是起始Static型态的totbyte,呼叫它时,请不要传叁数进去
  PrivateSubCommand1_Click()
  DimtotAsLong
  tot=GetDirTotalByte("c: ools")
  Debug.Printtot
  EndSub
  PrivateFunctionGetDirTotalByte(CurrentPathAsString,OptionaliAsLong)AsLong
  StatictotbyteAsLong
  DimnIAsInteger,nDirectoryAsInteger
  DimsFileNameAsString,sDirectoryList()AsString
  注释:Initialtotbyte,ifitisnottheRecursivecallthefunction
  Ifi<>1Then
  totbyte=0
  EndIf
  注释:Firstlistallnormalfilesinthisdirectory
  sFileName=Dir(CurrentPath,vbNormal vbHidden vbReadOnly vbSystem vbArchive)
  DoWhilesFileName<>""
  totbyte=totbyte FileLen(CurrentPath sFileName)
  sFileName=Dir
  Loop
  注释:Nextbuildtemporarylistofsubdirectories
  sFileName=Dir(CurrentPath,vbDirectory)
  DoWhilesFileName<>""
  注释:Ignorecurrentandparentdirectories
  IfsFileName<>"."AndsFileName<>".."Then
  注释:Ignorenondirectories
  IfGetAttr(CurrentPath&sFileName)_
  AndvbDirectoryThen
  nDirectory=nDirectory 1
  ReDimPreservesDirectoryList(nDirectory)
  sDirectoryList(nDirectory)=CurrentPath&sFileName
  EndIf
  EndIf
  sFileName=Dir
  Loop
  注释:Recursivelyprocesseachdirectory
  FornI=1TonDirectory
  GetDirTotalBytesDirectoryList(nI)&"",1
  NextnI
  GetDirTotalByte=totbyte
  EndFunction->

精彩图集

赞助商链接