[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Наш сайт » Visual basic » Объект FileListBox в VB (Объект FileListBox в VB)
Объект FileListBox в VB
ilimДата: Пятница, 04.02.2011, 05:14 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 680
Награды: 17
Репутация: 4
Статус: Offline
Этот объект прежде всего нужен для работы с файлам, а не для создания проводника :-). Обычно его скрывают(Visible = False), хотя иногда он нужен и в незасекреченном виде. Например, сейчас мы сделаем простенькую программу, которая будет узнавать сколько папка занимает места. Скажу сразу, что этого можно достичь при помощи FSO(при помощи API у меня так и не получилось), но таскать со своей программой библиотеку "scrrun.dll"(144 KB) очень неудобно. Итак, начнем`с...

На форму кинь объект FileListBox(Visible = False), 2 метки, и кнопку. В диске C:\ создай папку, с именем "1", и в нее напихай файлов(их размер мы определим).
Для создания программы нам понадобятся функции:
Format() - Функция обрезает дробное(например 1.021) число. Например: Format(12.123456789, "0.000") - функция выдаст 12.123, т.к. мы указали чтоб было 3 символа после точки("0.000").
FileLen() - функция выдает вес файла в байтах.
Код:

' Объявляем переменные как Single, т.е. эти переменные будут работать с дробными числами, длиной до 32 символов.
Dim FileSize As Single
Dim FileSize2 As Single
Dim FileSize3 As Single

Private Sub Command1_Click()
' Устанавливаем начальные значения переменных(чтобы при повторном нажатии не было багов)
Label1.Caption = ""
Label2.Caption = ""
FileSize = 0
FileSize2 = 0
FileSize3 = 0

File1.Path = "C:\1" ' Устанавливаем путь, в котором FileListBox будет работать с файлами(верней находить)
File1.Refresh ' Обновляем FileListBox

For i = 0 To File1.ListCount - 1 ' Цикл длится столько, сколько имен файлов(а имен файлов столько, сколько файлов в папке c:\1) записанно в File1.
FileSize = FileLen(File1.Path & "\" & File1.List(i)) / 1024 / 1024 ' Узнаем вес файла(путь к файлу узнаем так: File1.Path & "\" & File1.List(i), где File1.Path в нашем случае это C:\1, File1.List(i) - это полное имя файла, находящегося в FileListBoxe, с индексом i). Переводим вес из байтов в мегабайты.
FileSize2 = Format(FileSize, "0.000")' Немного обрезаем число, до 3 символов после точки
FileSize3 = FileSize3 + FileSize2' Плюсуем

Label2.Caption = Label2.Caption & vbCrLf & File1.List(i)' Выводим в столбик имена всех файлов в папке
Next i
Label1.Caption = FileSize3' Надпись Метки будет равен весу всех файлов в папке
End Sub


www.ilim.kz
 
Форум » Наш сайт » Visual basic » Объект FileListBox в VB (Объект FileListBox в VB)
Страница 1 из 11
Поиск: