help
解决方案 »
- 如何用VB使用QQ账号和密码读取QQ的聊天记录
- 求助一些VB基本问题.望大家指教
- 关于listBox的小问题
- 关于MSCOMM控件的问题实现一台电脑的两个COM口通讯(100)
- 报表中怎样在每页上显示小计?
- VB中怎样强行结束一个进程
- VB怎么知道abc.exe在任务管理器的状态是"正在运行"还是"未响应"???怎么得到123.txt修改时间?
- 急!!!!!!!!!!!!!!!!!!!!!!!!!!!!自定义控件中如何取得top,left之类的默认属性
- 用VB调用了excel.application的一个实例E,在后且的操作中,有with end with语句,然后E.quit set E=nothing,但excel未完全退出,怎么
- 请问在串口数据传输中,有没有更好的编码策略
- 请问怎么打印Listview控件
- 请问,怎么样才能做出象OFFICE XP样式的有图标的菜单
取得某个目录底下所有文件大小总和
含目录底下的子目录,求得其所有文件大小之总和
其第二个叁数的目的是起始Static型态的totbyte, 呼叫它时,请不要传叁数进去
Private Sub Command1_Click()
Dim tot As Long
tot = GetDirTotalByte("c:\tools\")
Debug.Print tot
End Sub
Private Function GetDirTotalByte(CurrentPath As String, Optional i As Long) As Long
Static totbyte As Long
Dim nI As Integer, nDirectory As Integer
Dim sFileName As String, sDirectoryList() As String
注释:Initial totbyte, if it is not the Recursive call the function
If i <> 1 Then
totbyte = 0
End If
注释:First list all normal files in this directory
sFileName = Dir(CurrentPath, vbNormal + vbHidden + vbReadOnly + vbSystem + vbArchive)
Do While sFileName <> ""
totbyte = totbyte + FileLen(CurrentPath + sFileName)
sFileName = Dir
Loop
注释:Next build temporary list of subdirectories
sFileName = Dir(CurrentPath, vbDirectory)
Do While sFileName <> ""
注释:Ignore current and parent directories
If sFileName <> "." And sFileName <> ".." Then
注释:Ignore nondirectories
If GetAttr(CurrentPath & sFileName) _
And vbDirectory Then
nDirectory = nDirectory + 1
ReDim Preserve sDirectoryList(nDirectory)
sDirectoryList(nDirectory) = CurrentPath & sFileName
End If
End If
sFileName = Dir
Loop
注释:Recursively process each directory
For nI = 1 To nDirectory
GetDirTotalByte sDirectoryList(nI) & "\", 1
Next nI
GetDirTotalByte = totbyte
End Function