#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <FileOperations.au3>
#include <GuiListView.au3>
$hGui = GUICreate('My Program', 495, 420, -1, -1, $WS_OVERLAPPEDWINDOW + $WS_POPUP)
$iListView = GUICtrlCreateListView("Файл|Размер", 5, 5, 485, 390)
GUISetState()
$SetSize = GUICtrlCreateLabel('StatusBar', 5, 420 - 20, 495 - 10, 17)
SelectFiles($iListView)
For $i = 0 To 1
GUICtrlSendMsg($iListView, $LVM_SETCOLUMNWIDTH, $i, -1)
GUICtrlSendMsg($iListView, $LVM_SETCOLUMNWIDTH, $i, -2)
Next
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Функция выбора файлов и добавления в список отображения.
Func SelectFiles($iListView)
$TitleInstallShell = ''
$SelectFilder = FileSelectFolder('', @DesktopDir, 2)
If @error Then
MsgBox(0, $TitleInstallShell, 'Вы не выбрали папку!')
Else
SplashTextOn($TitleInstallShell, 'Идет обработка списка, пожалуйста ждите...', 400, 70, -1, -1, 1, '', 13)
$FileList = _FO_FileSearch($SelectFilder) ; Запускаем сканер выбранной директории
If @error Then Return MsgBox(0, $TitleInstallShell, 'Папка пуста!')
Local $FileList2[$FileList[0] + 1][2] ; Создаем массив согласно размеру найденных файлов
; Запускаем цикл по определению размера у каждого файла
$Sum = 0
For $i = 1 To $FileList[0]
$FileList2[$i - 1][0] = $FileList[$i]
$tmp = FileGetSize($FileList[$i])
$Sum += $tmp ; Считаем общий размер всей выбранной директории
$FileList2[$i - 1][1] = _FO_ShortFileSize($tmp)
Next
GUICtrlSetData($SetSize, _FO_ShortFileSize($Sum))
_GUICtrlListView_AddArray($iListView, $FileList2)
SplashOff()
EndIf
EndFunc ;==>SelectFiles