itljl 发表于 2008-9-17 22:12:27

有没有比这更好的获取指定目录的大小?

函数中只有获取文件大小,分区大小,但无法得到目录大小,谁能获取?

下面我自己搞了个,但有没有比这更简洁的?Dim $s
_filelist("C:\WINDOWS\$hf_mig$")
MsgBox(0, "大小,MB", $s / 1048576)
Func _filelist($DirSource)

        If FileExists($DirSource) = 0 Then
                MsgBox(64, "提示", "【" & $DirSource & "】目录不存在!请重新指定有效目录.")
        Else
                Local $WorkingDir, $search, $file
                FileChangeDir($DirSource)
                $search = FileFindFirstFile("*.*")
                If $search = -1 Then
                        ;MsgBox(64, "完成提示", "在目录【" & $DirSource & "】下未找到任何文件和子目录!")
                Else
                        While 1
                                $file = FileFindNextFile($search)
                                If @error Then ExitLoop
                                If StringInStr(FileGetAttrib($DirSource & "\" & $file), "D") Then
                                        _filelist($DirSource & "\" & $file)
                                Else
                                        ;MsgBox(0, 000, $DirSource & "\" & $file)
                                        ;If StringRight($file, 3) = "exe" Then
                                        ; FileWriteLine(@ScriptDir & "\file.txt", $DirSource & "\" & $file & @CRLF)
                                        ;EndIf
                                        $s += FileGetSize($DirSource & "\" & $file)

                                EndIf
                        WEnd
                EndIf
        EndIf
EndFunc   ;==>_filelist

[ 本帖最后由 itljl 于 2008-9-18 04:15 编辑 ]

itljl 发表于 2008-9-18 04:15:29

半夜起来又看了一遍..DirGetSize( "目标路径" [, 标志] )

qddoit 发表于 2009-11-20 05:20:42

呵呵,不错,学习了~
页: [1]
查看完整版本: 有没有比这更好的获取指定目录的大小?