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

Получить имена всех файлов с определенным расширением в определенной директории

16.01.2021, 16:20. Показов 4361. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть приложение которое взаимодействует с БД типа .accdb. Пытаюсь получит список всех БД находящихся в определенной директории. Однако Выскакивает ошибка: "не удалось найти часть пути" Вот собственно код:
VB.NET
1
2
3
4
5
Dim Folder As Directory
        Dim Files() As String 
        ComboBox2.Items.Clear()
        Files = Folder.GetFiles(" My.Application.Info.DirectoryPath", "*.accdb")
        ComboBox2.DataSource = Files
Хотя подключение к бд происходит так:
VB.NET
1
 Dim Con As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;; Data Source=" & My.Application.Info.DirectoryPath & "/fname.accdb")
Подключение происходит нормально как и все остальные операции с БД
Как справится с данной ошибкой?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2021, 16:20
Ответы с готовыми решениями:

Копирование файлов с определенным расширением со всех подкаталогов определенной папки
Всем доброго времени суток. Ребят, прошу прощения если данная тема уже существует, но решения я не нашел. Очень нужна ваша помощь. Есть...

Как получить имена всех папок в определенной директории?
Как получить имена всех папок(не файлов!) в данной дир-ие?

Получить названия всех файлов с данным расширением в данной директории
Мне нужно, чтобы моя программа при запуске получала имена всех файлов с расширением .mmf, лежащих в директории /Files. Как это можно...

9
Модератор
Эксперт .NET
 Аватар для Yury Komar
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
16.01.2021, 16:39
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

_Alectr_21, вот так:
VB.NET
1
2
3
4
5
6
 Dim Folder As Directory
        Dim Dim Folder As Directory
        Dim Files() As String 
        ComboBox2.Items.Clear()
        Files = Folder.GetFiles(My.Application.Info.DirectoryPath, "*.accdb")
        ComboBox2.DataSource = Files
1
2 / 2 / 0
Регистрация: 19.04.2019
Сообщений: 58
16.01.2021, 16:49  [ТС]
Yury Komar, СПС. Ну да конечно кавычки не надо было ставить. Вот еще как бы по теме. В результате получаю Полный путь к каждому файлу, а как получить только имена файлов и без расширений?
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
16.01.2021, 17:07
Лучший ответ Сообщение было отмечено _Alectr_21 как решение

Решение

_Alectr_21, _Alectr_21, так (с нужными параметрами)
IO.Path.GetFileNameWithoutExtension()
1
2 / 2 / 0
Регистрация: 19.04.2019
Сообщений: 58
16.01.2021, 17:15  [ТС]
VB.NET
1
2
3
4
5
6
7
8
Dim Folder As Directory
        Dim Files() As String '
        ComboBox2.DataSource = Files
        ComboBox2.Items.Clear()
        Files = Folder.GetFiles(My.Application.Info.DirectoryPath, "*.accdb")
        For i As Integer = 0 To Files.Length - 1
            ComboBox2.Items.Add(IO.Path.GetFileNameWithoutExtension(Files(i)))
        Next
Вот так получается как я хотел. Может кто поправит код если он криво написан может лучше можно. В принцип все работает
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
16.01.2021, 17:27
_Alectr_21, можно вообще в одну строчку записать, через LINQ, но это, думаю, лишнее
1
2 / 2 / 0
Регистрация: 19.04.2019
Сообщений: 58
16.01.2021, 18:06  [ТС]
Yury Komar, Хотелось бы узнать как через LINQ делается. Еще я думаю что в массив не стоит записывать а лучше в переменную по строкам. Так как кол-во файлов может меняться.
0
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
16.01.2021, 18:54
Например
VB.NET
1
2
3
Dim pth As String = My.Application.Info.DirectoryPath
Dim files = IO.Directory.EnumerateFiles(pth, "*.xml", IO.SearchOption.AllDirectories).Select(Function(s) IO.Path.GetFileNameWithoutExtension(s))
ComboBox1.DataSource = files.ToArray
3
2 / 2 / 0
Регистрация: 19.04.2019
Сообщений: 58
16.01.2021, 19:04  [ТС]
ovva, Класс, да и работает наверное быстрее чем мой код. Надо попробовать.
0
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
18.01.2021, 15:04
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Цитата Сообщение от _Alectr_21 Посмотреть сообщение
да и работает наверное быстрее чем мой код
_Alectr_21, прошу прощения, но ваш код - это бессмыслица. Странно, что он у вас работает.
По порядку:
1. Сначала вы объявляете переменную Folder с типом Directory, а затем через неё вызываете
метод GetFiles. Но это неправильно, потому-что методы в этом классе созданы
с модификатором Shared, а это означает, что их нельзя вызывать через переменную
или экземпляр класса. Студия должна была выдать предупреждение.
2. В 4 строке вы назначаете источником данных для комбобокса массив Files(), в котором
если вы говорите, что код работает, содержатся полные пути к файлам. Это бессмысленно,
потому-что:
3. Затем вы очищаете коллекцию комбобокса и в цикле уже заполняете её именами файлов.

Что касается быстродействия по сравнению с LINQ, то при таких, я полагаю, небольших размерах
массива, вы её не заметите, если она вообще есть. Зато код с циклом лучше читаем.

Подводя итог, ваш код должен выглядеть так
VB.NET
1
2
3
4
5
6
Dim Files() As String '
 ComboBox2.Items.Clear()
 Files = Directory.GetFiles(My.Application.Info.DirectoryPath, "*.accdb")
 For i As Integer = 0 To Files.Length - 1
      ComboBox2.Items.Add(IO.Path.GetFileNameWithoutExtension(Files(i)))
 Next
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.01.2021, 15:04
Помогаю со студенческими работами здесь

Как получить имена всех файлов с данным расширением в данной папке
Есть openfiledialog1. При открытии через него одного файла нужно получить имена всех файлов с таким расширением, находящимися в этой папке.

Как получить имена всех файлов и папок в некоторой директории?
Нужно срочно, я свое гуи пишу на GraphABC. Работает без лагов. Так вот имена всех файлов и папок нужно для того, чтобы написать процедуры...

Как получить в скрипт имена всех файлов из некоторой директории на сервере?
Как получить в скрипт имена всех файлов из некоторой директории на сервере?(проблема доступа не важна)

Поиск файлов с расширением .odt в определенной директории
Всем привет, только учусь программированию на python. Необходима помощь в написании программы, суть: 1. В директории скрипта есть папка...

В определенной директории, прочитать все имена файлов и создать папки, с названиями этих файлов
В общем Моя задача, в определенной директории, прочитать все имена файлов и создать папки, с названиями этих файлов. Вот код: namespace...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru