Здесь мы с Вами напишем программу в среде программирования 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
то у нас при запуске программы не будет отображаться текущий путь каталогов.
Вот и все, удачи!