Здесь мы с Вами напишем программу в среде программирования Microsoft Visual Basic 6.0, которая будет определять размер любого выбранного файла в окне встроенного файлового менеджера.
Давайте приступим, запустим среду, выбираем стандартный проект и добавляем на форму следующее количество объектов:
- 5 Label
- 1 TextBox
- 1 FileListBox
- 1 DirListBox
- 1 ComboBox
- 1 DriveListBox
- 2 CommandButton
Далее задаем им названия в окне свойств, поле name и caption, в следующем соответствие:
|
Ваше название объекта |
Поле Name |
Поле caption |
|
Label1 |
lblFileName |
Имя файла: |
|
Label2 |
lblDirectories |
каталоги |
|
Label3 |
lblDirName |
Оставим пустым |
|
Label4 |
lblTypeFile |
Тип файла: |
|
Label5 |
lblDrive |
Диск: |
|
Text1 |
txtFileName |
В поле text все стираем
|
|
File1 |
filfiles |
|
|
Dir1 |
DirDirectory |
|
|
Combo1 |
CboFileType |
|
|
Drive1 |
drvDrive |
|
|
Command1 |
cmdOk |
Ok |
|
Command2 |
cmdCancel |
Cancel |
После того как Вы все переименовали, можете их расположить, как показано на картинке:

Осталось наполнить функционалом нашу программу, вставляем следующий код:
Private Sub CboFileType_Click()
Select Case CboFileType.ListIndex
Case 0
filfiles.Pattern = "*.*"
Case 1
filfiles.Pattern = "*.txt"
Case 2
filfiles.Pattern = "*.Doc*"
End Select
End Sub
Private Sub cmdCancel_Click()
End
End Sub
Private Sub cmdOk_Click()
Dim PathAndName As String
Dim FileSize As String
Dim path As String
If txtFileName.Text = "" Then
MsgBox "Файл не выбран!"
Exit Sub
End If
If Right(filfiles.path, 1) "\" Then
path = filfiles.path + "\"
Else
path = filfiles.path
End If
If txtFileName.Text = filfiles.FileName Then
PathAndName = path + filfiles.FileName
Else
PathAndName = txtFilName.Text
End If
On Error GoTo FileLEnError
FileSize = Str(FileLen(PathAndName))
MsgBox "Размер файла " + PathAndName + ":" + FileSize + "bites"
Exit Sub
FileLEnError:
MsgBox " Не могу определит размер файла" + PathAndName
Exit Sub
End Sub
Private Sub DirDirectory_Change()
filfiles.path = DirDirectory.path
lblDirName.Caption = DirDirectory.path
End Sub
Private Sub drvDrive_Change()
On Error GoTo DriveError
DirDirectory.path = drvDrive.Drive
Exit Sub
DriveError:
MsgBox "Ошибка выбора устройства", vbExclamation, "Ошибка"
drvDrive = dirdrive.path
Exit Sub
End Sub
Private Sub filfiles_Click()
txtFileName.Text = filfiles.FileName
End Sub
Private Sub filfiles_DblClick()
txtFileName.Text = filfiles.FileName
cmdOk_Click
End Sub
Private Sub Form_Load()
CboFileType.AddItem "Все файлы(*.*) "
CboFileType.AddItem "Текстовые файлы(*.txt) "
CboFileType.AddItem "Документы Word(*.doc)"
CboFileType.ListIndex = 0
lblDirName.Caption = DirDirectory.path
End Sub
После того как Вы вставили код, можете сразу проверить работоспособность программы. А сейчас давайте я немного поясню, что мы сделали.
- CboFileType — это поле показывает, какие файлы мы хотим увидеть, и в этом коде прописано, что если мы захотим чтобы у нас отображались только текстовые файлы, то программа будет отображать только их и так далее;
- cmdCancel — здесь все просто, мы заканчиваем нашу программу командой End;
- cmdOk — именно здесь прописана процедура определения размера файла, т.е. если выделить файл и нажать на OK, то программа выдаст сообщение о размере файла.
Здесь мы с Вами прописали даже некие ошибки, если они возникнут, т.е. условие:
If txtFileName.Text = "" Then
MsgBox "Файл не выбран!"
Exit Sub
End If
Которое говорит программе, что если в текстовом поле ничего не будет, то выдать сообщение, что файл не выбран.
А вот это условие
If txtFileName.Text = filfiles.FileName Then
PathAndName = path + filfiles.FileName
Else
PathAndName = txtFilName.Text
End If
On Error GoTo FileLEnError
FileSize = Str(FileLen(PathAndName))
MsgBox "Размер файла " + PathAndName + ":" + FileSize + "bites"
Exit Sub
Говорит нам о том, что если в текстовом поле есть название файла, то при нажатии на OK будет выводиться сообщение, в котором будет указан размер файла.
DirDirectory — показывает каталоги, которые располагаются на диске, а еще отображает путь файлов, который будет показан в lblDirName.
drvDrive — это выбор диска, также здесь прописана ошибка, при которой будет всплывать соответствующее сообщение.
Filfiles — здесь отображаются все файлы, которые располагаются в выбранном каталоге, и при выделении одного из них (или двойным щелчком мыши), название этого файла как раз токи и будет отображаться в текстовом поле.
Form — загрузка формы, здесь у нас отображаются значения по умолчанию, т.е. если мы уберем, скажем:
CboFileType.AddItem "Все файлы(*.*) " CboFileType.AddItem "Текстовые файлы(*.txt) " CboFileType.AddItem "Документы Word(*.doc)" CboFileType.ListIndex = 0
то у нас не будет отображаться название пунктов при выборе фильтра по типу файлов, а если уберем:
lblDirName.Caption = DirDirectory.path
то у нас при запуске программы не будет отображаться текущий путь каталогов.
Вот и все, удачи!
