用api的我再想想,不过用FileSystemObject很容易实现,如: Dim fso As FileSystemObject Dim f As Folder Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder("c:\winnt") Print f.Size
msdn的例子 Sub ShowFolderSize(filespec) Dim fs, f, s Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(filespec) s = UCase(f.Name) & " uses " & f.size & " bytes." MsgBox s, 0, "Folder Size Info" End Sub
就是说 那个目录肯定有很多子目录,子目录肯定还有很多文件,就是不要遍历所有子目录就可以获得这个目录中所有文件(含子目录)的文件的大小的总和记得好像再 shell.dll里有个 SH 开头的api可以实现这个功能,可是找不到了
Dim fso As FileSystemObject
Dim f As Folder
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("c:\winnt")
Print f.Size
Sub ShowFolderSize(filespec)
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(filespec)
s = UCase(f.Name) & " uses " & f.size & " bytes."
MsgBox s, 0, "Folder Size Info"
End Sub