Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 1
Регистрация: 16.08.2011
Сообщений: 76

Возможно ли вывести в ListBox название всех файлов по заданному пути

19.02.2014, 14:54. Показов 2120. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые программисты, прошу помочь! Возможно ли вывести на ListBox название всех файлов при задание пути. И при нажатие какого-нибудь файла (например текстового) происходила какое-то событие. На VB6 была такая штучка FileListBox. Можно сделать для vb.net? Спасибо заранее.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2014, 14:54
Ответы с готовыми решениями:

Вывести на экран абсолютные пути всех файлов, которые находятся в заданном каталоге и всех его подкаталогах
Не могу вернуть масив с директориями...( Если выводить на экран в цикле, то все нормально, но когда с main вывожу возвращаемый массив,...

Получить и вывести на экран абсолютные пути всех файлов, которые находятся в заданном каталоге и всех его подк
Получить и вывести на экран абсолютные пути всех файлов, которые находятся в заданном каталоге и всех его подкаталогах public String...

Как вывести название всех файлов имеющих одинаковую первую букву?
Здравствуйте. Помогите пожалуйста с задачкой: Нужно вывести название всех файлов в каталоге, имеющих одинаковую первую букву. Буква и...

19
 Аватар для Nachrichter
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
19.02.2014, 15:02
F.A.Q.: Получение папок и файлов в директории. Как добавить в ListBox разберётесь?
1
2 / 2 / 1
Регистрация: 16.08.2011
Сообщений: 76
19.02.2014, 16:09  [ТС]
Да, разобралась
VB.NET
1
2
3
4
Dim Files() As String = IO.Directory.GetFiles("D:\Papka\")
For Each Name As String In Files
ListBox1.Items.Add(IO.Path.GetFileName(Name))
Next
Добавлено через 10 минут
Вот как еще заставить работать при нажатие любого файла. Типа как OpenFileDialog. Только вместо этого используется окно ListBox?
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
19.02.2014, 16:31
Lilek, сократите:
VB.NET
1
ListBox1.Items.AddRange(IO.Directory.GetFiles("D:\Papka\"))
Второе - не понял

Добавлено через 1 секунду
Lilek, сократите:
VB.NET
1
ListBox1.Items.AddRange(IO.Directory.GetFiles("D:\Papka\"))
Второе - не понял
0
38 / 38 / 16
Регистрация: 14.03.2012
Сообщений: 168
19.02.2014, 16:47
Lilek,
VB.NET
1
Shell(ListBox1.Text)
Добавлено через 6 минут
Ааа при нажатии, ну тогда так
VB.NET
1
2
3
    Private Sub ListBox1_DoubleClick(sender As Object, e As EventArgs) Handles ListBox1.DoubleClick
        Shell(ListBox1.Text)
    End Sub
1
2 / 2 / 1
Регистрация: 16.08.2011
Сообщений: 76
19.02.2014, 16:49  [ТС]
Хотелось бы сделать окошко как при открытие файла системы widows или OpenFileDialog. Что бы пользователь не мог лазить по компьютеру и открыть нужный файл через ListBox, где определенное количество файлов которые он может открыть. Типа так.
0
38 / 38 / 16
Регистрация: 14.03.2012
Сообщений: 168
19.02.2014, 16:58
Lilek, Тоесть при нажатии на какуюто папку в listboxe ее содержимое открылось опятьже в listbox?
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
19.02.2014, 17:21
Имхо, для таких целей лучше использовать ListView
1
 Аватар для Nachrichter
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
19.02.2014, 18:16
Лучший ответ Сообщение было отмечено как решение

Решение

Lilek, кое-что по теме.
3
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
20.02.2014, 13:03
Никита12345, Shell не запустит любой файл. Только исполняемый.
Вот
VB.NET
1
2
3
Private Sub ListBox1_DoubleClick(sender As Object, e As EventArgs) Handles ListBox1.DoubleClick
    process.start(ListBox1.SelectedItem)
End Sub
1
2 / 2 / 1
Регистрация: 16.08.2011
Сообщений: 76
24.02.2014, 08:54  [ТС]
Есть такой код:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
Sub Open()
        Try
            Dim OFD As New OpenFileDialog With 
            If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
                Start(OFD.FileName)
            End If
        Catch ex As Exception
            MsgBox("В программе произошла ошибка, приложение будет закрыто", MsgBoxStyle.Critical)
            Close()
        End Try
    End Sub
который сейчас и стоит, как заменить

VB.NET
1
2
Dim OFD As New OpenFileDialog With 
            If OFD.ShowDialog = Windows.Forms.DialogResult.OK
чтобы запускалась через ListBox. Возможно ли сделать так?
0
 Аватар для Nachrichter
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
24.02.2014, 09:08
Lilek, если я Вас правильно понимаю, то можно в событие ListBox'a SelectedIndexChanged или DoubleClick вставить:
VB.NET
1
Process.Start("path")
Так вот же - постом выше - уважаемый Юпатов Дмитрий об этом говорил.
0
2 / 2 / 1
Регистрация: 16.08.2011
Сообщений: 76
24.02.2014, 09:12  [ТС]
Да, но это не работает
0
 Аватар для Nachrichter
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
24.02.2014, 09:14
Lilek, подозреваю, что в ListBox'e у Вас только имена файлов...
1
2 / 2 / 1
Регистрация: 16.08.2011
Сообщений: 76
24.02.2014, 09:25  [ТС]
Nachrichter, точно, имена файлов.

Добавлено через 2 минуты
Наверное, невозможно открыть файл через ListBox
0
 Аватар для Nachrichter
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
24.02.2014, 09:41
Цитата Сообщение от Lilek Посмотреть сообщение
Наверное, невозможно открыть файл через ListBox
Lilek, нет ничего невозможного: простейшим решением будет добавление в ListBox не имён файлов, а их полных путей, включая имя и расширение.
1
2 / 2 / 1
Регистрация: 16.08.2011
Сообщений: 76
24.02.2014, 09:49  [ТС]
Nachrichter, Спасибо. Так работает, но когда полный путь не красиво смотрится
0
 Аватар для Nachrichter
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
24.02.2014, 09:58
Цитата Сообщение от Lilek Посмотреть сообщение
но когда полный путь не красиво смотрится
Разве это проблема? Берём массив и "соваем" туда пути, а в ListBox - имя файла. Когда требуется, запускаем файл по пути из массива.
Вложения
Тип файла: rar WindowsApplication1.rar (63.4 Кб, 14 просмотров)
1
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
24.02.2014, 11:00
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Nachrichter Посмотреть сообщение
Берём массив и "соваем" туда пути, а в ListBox - имя файла
Не надо... VB.NET он же как бы объектно ориентированный. Так давайте иногда этим пользоваться.
В код пустой формы кидаем то, что под спойлером
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Public Class Form1
    Dim WithEvents LBX As ListBox
 
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ' создаем новый листбокс и даем ему нужные атрибуты
        LBX = New ListBox
        With LBX
            .Location = New Point(0, 0)
            .Dock = DockStyle.Fill
            .IntegralHeight = False
            .SelectionMode = SelectionMode.One
        End With
        Me.Controls.Add(LBX)
        ' заполняем его итемами типа MyListItem
        'For Each _file As String In IO.Directory.GetFiles("D:\Юпатов.КБ-7\Юпатов\Справочники", "*.txt", IO.SearchOption.AllDirectories) ' это с фильтром по текстовикам
        For Each _file As String In IO.Directory.GetFiles("D:\Юпатов.КБ-7\Юпатов\Справочники", "*", IO.SearchOption.AllDirectories)
            Dim NMLI As New MyListItem(_file)
            Me.LBX.Items.Add(NMLI)
        Next
    End Sub
 
    Private Sub LBX_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles LBX.DoubleClick
        Dim nmli As MyListItem = CType(Me.LBX.SelectedItem, MyListItem)
        Process.Start(nmli.FullPath)
    End Sub
 
    Private Sub LBX_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles LBX.SelectedIndexChanged
        Dim nmli As MyListItem = CType(Me.LBX.SelectedItem, MyListItem)
        Me.Icon = nmli.ItemIcon
    End Sub
End Class
 
''' <summary>
''' Класс, описывающий некоторые необходимые атрибуты добавляемого в ListBox итема (полный путь файла, имя без расширения, ассоциированный с данным расширением значок)
''' </summary>
''' <remarks></remarks>
Public Class MyListItem
    Friend FullPath As String
    Friend FileName As String
    Friend ItemIcon As Icon
 
    ''' <summary>
    ''' Создание нового экземпляра
    ''' </summary>
    ''' <param name="FP">полный путь к файлу</param>
    ''' <remarks></remarks>
    Public Sub New(ByVal FP As String)
        FullPath = FP
        FileName = IO.Path.GetFileNameWithoutExtension(FP)
        ItemIcon = Icon.ExtractAssociatedIcon(FP)
    End Sub
 
    ' своя функция приведения к строке (выдает значение FileName)
    Public Overrides Function ToString() As String
        Return FileName
    End Function
End Class

В итоге при старте будет создан ListBox и заполнен экземплярами класса MyListItem (каждый из них содержит полный путь к файлу, имя файла без расширения, иконку файла)
имя файла - отображается в списке
полный путь - используется для запуска файла
иконка - используется для ее показа в шапке формы

Одинарный клик в списке - выбор итема и показ иконки файла в шапке формы
Двойной клик по итему - старт данного файла в той программе, которая назначена системой для данного расширения.

P.S.
D:\Юпатов.КБ-7\Юпатов\Справочники - заменить на свой путь
IO.SearchOption.AllDirectories - выбрать, то что надо: выборка из всех вложенных папок (AllDirectories) или только верхний уровень (TopDirectoryOnly)

Так сказать, ООП в действии на примитивном уровне
4
2 / 2 / 1
Регистрация: 16.08.2011
Сообщений: 76
24.02.2014, 12:03  [ТС]
Юпатов Дмитрий, Спасибо, то что надо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2014, 12:03
Помогаю со студенческими работами здесь

Возможно ли при выборе через opendialog заносить в ListBox имена файлов, а при чтении из ListBox получать путь к файлам?
Возможно ли при выборе через opendialog заносить в ListBox имена файлов, а при чтении из ListBox получать путь к файлам?

Отказано в доступе по пути при перечислении всех файлов во всех папках на диске С
Доброго времени суток. Пробую перечислить все файлы во всех папках на диске С. Вот так: static void Main( string args ) ...

Загрузить в ListBox имена файлов, без полного пути
Тут такая задачка: необходимо в (ListBox) lb подобавлять файлы, которые выбирает пользователь. Файлы выбираются с помощью...

Занесение файлов в ListBox без указания пути к нему
openFileDialog1.Multiselect = true; if ((openFileDialog1.ShowDialog() == DialogResult.OK)) { ...

Функция, которая по заданному пути показывает список директорий и файлов которые находятся в ней
мне нужен объект или функция которая по заданному пути показывала список директория и файлов которые находятся в ней. Для дальнейшей работы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru