历史遗留问题:关于VB.NET求一个文件夹大小的程序
一个月前,我在碰到此问题时,有一位朋友给了正解,本人十分感谢,结帖后两个星期,我就发现了一个小问题。
当时程序是如下:
Public Function getDirSize(ByVal path As String) As Decimal
Dim dir As DirectoryInfo
dir = New DirectoryInfo(path)
Dim dsize As Decimal
dsize = 0
Dim fi As FileSystemInfo
For Each fi In dir.GetFileSystemInfos()
If cstr(fi.Attributes)="16" Then
dsize = dsize + getDirSize(fi.FullName)
Else
Dim finf As FileInfo
finf = New System.IO.FileInfo(fi.FullName)
dsize = dsize + finf.Length
End If
Next
dsize=dsize/1024/1024
getDirSize = Round(dsize,2)
End Function
如果一个文件夹中只有文件,那么这个函数是正确的,它能列出文件夹的大小,但是如果文件夹中是一个文件夹和两个文件的话,便出现了问题,它只能计算出文件的大小,而忽略了文件夹的大小,我有点不清楚了,看程序,好象已经递规了,怎么会不行呢?
问题点数:20、回复次数:3Top
1 楼mathsword(梦在流浪)回复于 2005-07-02 16:06:04 得分 0
cstr(fi.Attributes)="16" 这个判断是对的吗?跟踪一下不就知道了
用Directory.Exists(fi)来判断是文件夹Top
2 楼mathsword(梦在流浪)回复于 2005-07-02 16:07:11 得分 20
用 File.Exists(fi) 判断是文件Top
3 楼renyu732(Sysinfo)回复于 2005-07-02 18:43:02 得分 0
你可以分条件判断执行.Top




