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

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

21.07.2016, 03:14. Показов 3139. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Как получить список файлов (полные пути) нескольких типов, которые находятся в одной папке?
Например, если графические файлы, то в список должны попасть файлы типов: jpg, bmp, gif и п.т.
Если звук, то mp3, wav, ogg и п.т.
Типы файлов указываются пользователем.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.07.2016, 03:14
Ответы с готовыми решениями:

Получить список зарегистрированных в системе типов файлов
Привет всем! Подскажите, пожалуйста, каким образом средствами .NET (C# или VB) получить список зарегистрированных в системе расширений...

Как добавить обработку файлов нескольких определённых типов в код BAT-файла для архивации файлов?
Спасибо большое за полезную информацию! Отличный код. Подскажите как к нему прикрутить обработку файлов нескольких определенных типов? Не...

Добавить команду в контекстное меню определенных типов файлов
Здравствуйте. Вопрос немного не в тему, но раздела regedit на форуме я не нашел. Написал небольшую программку, она добавляет команду...

14
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
21.07.2016, 06:19
VB.NET
1
2
3
4
5
6
7
8
9
        Dim Graph As String = "Изображения|*.jpg;*.png;*.gif;*.png"
        Dim Sound As String = "Звук|*.mp3;*.wav;*.ogg;*.mid"
        Dim Docs As String = "Документы|*.doc?;*.xls?;*.odt;*.txt"
        Dim OFD As New OpenFileDialog With {.Filter = Graph & "|" & Sound & "|" & Docs, .Multiselect = True}
        If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
            For Each File As String In OFD.FileNames
                MsgBox(File)
            Next
        End If
3
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
21.07.2016, 12:19
Предложу еще вариант
VB.NET
1
2
3
4
5
6
7
8
Dim list As New List(Of FileInfo)
        Dim dir As New DirectoryInfo("C:\Test")
        list.AddRange(dir.GetFiles)
        For Each f In list
            If CheckedListBox1.CheckedItems.Contains(f.Extension) Then
                ListBox1.Items.Add(f.FullName)
            End If
        Next
В CheckedListBox1 должны содержаться расширения файлов
2
1 / 1 / 0
Регистрация: 24.05.2016
Сообщений: 81
21.07.2016, 16:45  [ТС]
Памирыч и MrCrown, спасибо за помощь. Но мне нужно немного другое. Нечто среднее из ваших вариантов.
1. Путь к папке задан в переменной типа string.
2. Типы файлов заданы как массив string.

В идеале - это функция
Function ListFiles(ByVal FolderPath As String, ByVal Extensions() As String) As List(Of String)
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
21.07.2016, 16:55
Лучший ответ Сообщение было отмечено edward_freedom как решение

Решение

Цитата Сообщение от ALX2K Посмотреть сообщение
функция
VB.NET
1
2
3
4
5
6
7
    Function ListFiles(ByVal FolderPath As String, ByVal Extensions() As String) As List(Of String)
        Dim Files As New List(Of String)
        For Each Ext As String In Extensions
            Files.AddRange(IO.Directory.GetFiles(FolderPath, "*." & Ext, IO.SearchOption.AllDirectories))
        Next
        Return Files
    End Function
Вызов
VB.NET
1
ListBox1.Items.AddRange(ListFiles("C:\NewFolder", New String() {"doc", "pdf", "png", "txt"}).ToArray)
5
1 / 1 / 0
Регистрация: 24.05.2016
Сообщений: 81
21.07.2016, 23:27  [ТС]
Памирыч, большое спасибо!
0
1 / 1 / 0
Регистрация: 24.05.2016
Сообщений: 81
11.08.2016, 17:01  [ТС]
Привет. Еще один вопрос. Я получаю список файлов, но файлы в списке расположены не так как хотелось бы.
У меня папки расположены:
Code
1
2
3
4
1
  1-1
        1-1-1
  1-2
После поиска файлов в ListBox получается:
1\3.bmp
1\1-1\2.bmp
1\1-1\1-1-1\4.bmp
1\1-1\1.gif
1\1-1\1-1-1\5.gif
1\2.jpg
1\1.png
1\4.png
1\5.png
1\1-2\1.png
1\1-2\2.png
1\1-2\3.png
1\1-2\4.png
1\1-2\5.png
1\1-1\3.png
1\1-1\4.png
1\1-1\5.png
1\1-1\1-1-1\1.png
1\1-1\1-1-1\2.png
1\1-1\1-1-1\3.png

Потому, что так так происходил поис - "bmp", "gif", "jpg", "png"

Если сделать сортировку .Sort() , то:
1\1.png
1\1-1\1.gif
1\1-1\1-1-1\1.png
1\1-1\1-1-1\2.png
1\1-1\1-1-1\3.png
1\1-1\1-1-1\4.bmp
1\1-1\1-1-1\5.gif
1\1-1\2.bmp
1\1-1\3.png
1\1-1\4.png
1\1-1\5.png
1\1-2\1.png
1\1-2\2.png
1\1-2\3.png
1\1-2\4.png
1\1-2\5.png
1\2.jpg
1\3.bmp
1\4.png
1\5.png

Но мне бы хотелось, что бы было так:
1\1.png
1\2.jpg
1\3.bmp
1\4.png
1\5.png
1\1-1\1.gif
1\1-1\2.bmp
1\1-1\3.png
1\1-1\4.png
1\1-1\5.png
1\1-1\1-1-1\1.png
1\1-1\1-1-1\2.png
1\1-1\1-1-1\3.png
1\1-1\1-1-1\4.bmp
1\1-1\1-1-1\5.gif
1\1-2\1.png
1\1-2\2.png
1\1-2\3.png
1\1-2\4.png
1\1-2\5.png

Или так:
1\1.png
1\2.jpg
1\3.bmp
1\4.png
1\5.png
1\1-1\1.gif
1\1-1\2.bmp
1\1-1\3.png
1\1-1\4.png
1\1-1\5.png
1\1-2\1.png
1\1-2\2.png
1\1-2\3.png
1\1-2\4.png
1\1-2\5.png
1\1-1\1-1-1\1.png
1\1-1\1-1-1\2.png
1\1-1\1-1-1\3.png
1\1-1\1-1-1\4.bmp
1\1-1\1-1-1\5.gif

Как осуществить такую сортировку?
0
 Аватар для XIST
1960 / 1061 / 148
Регистрация: 01.10.2009
Сообщений: 3,589
Записей в блоге: 1
11.08.2016, 18:04
VB.NET
1
listBox1.Sorted = true
0
1 / 1 / 0
Регистрация: 24.05.2016
Сообщений: 81
11.08.2016, 21:49  [ТС]
XIST, спасибо, но ListBox мне не нужен.
Мне нужно получить список файлов в List(Of String) и там же осуществить такую сортировку.
0
 Аватар для XIST
1960 / 1061 / 148
Регистрация: 01.10.2009
Сообщений: 3,589
Записей в блоге: 1
11.08.2016, 22:03
Цитата Сообщение от ALX2K Посмотреть сообщение
После поиска файлов вListBox получается:
Запутали Вы
0
1 / 1 / 0
Регистрация: 24.05.2016
Сообщений: 81
11.08.2016, 22:17  [ТС]
XIST, признаю. У меня ListBox пока для контроля какие файлы получаются в списке. Вот я и написал про него. В программе ListBox не будет.
Вроде нужно создать какой-то компарер и вызывать его в .Sort(компарер), но как это сделать не знаю. Новичок я в программировании.
0
 Аватар для XIST
1960 / 1061 / 148
Регистрация: 01.10.2009
Сообщений: 3,589
Записей в блоге: 1
11.08.2016, 22:40
ALX2K, вот не помню точно, студия не запущена
а разве нет такого?
VB.NET
1
2
Dim Lis As New List(Of string)
Lis.Sort("тут по-моему можно написать свою функцию сортировки"())
поправьте если нет
0
1 / 1 / 0
Регистрация: 24.05.2016
Сообщений: 81
11.08.2016, 23:36  [ТС]
XIST, это самое. Только саму функцию сортировки я не могу написать.
0
 Аватар для XIST
1960 / 1061 / 148
Регистрация: 01.10.2009
Сообщений: 3,589
Записей в блоге: 1
12.08.2016, 07:51
Тогда, лучшее было бы, это создание структуры, и потом заполнение list массивом на основании структуры. Ну и уже сортировка, по одному из полей структуры.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
12.08.2016, 18:37
Вариант
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
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim ss() As String = File.ReadAllLines("data.txt") 'исходный список
    Dim ss2(ss.Length - 1) As String
    Dim rf(ss.Length - 1) As Reform
    For i = 0 To ss.Length - 1
        ListBox1.Items.Add(ss(i))
        rf(i) = New Reform(ss(i))
        ss2(i) = rf(i).Cod
    Next
    Array.Sort(ss2, rf)
    For i = 0 To ss.Length - 1
        ss(i) = rf(i).Input
    Next
    ListBox2.DataSource = ss
End Sub
'…
Public Class Reform
    Public Sub New(ByVal s As String)
        _Input = s
    End Sub
    Public Property Input As String
    Public ReadOnly Property Cod As String
        Get
            _Input = _Input.ToLower()
            Dim str As String = _Input.Replace(""c, "0"c)
            str = str.Replace("-"c, "0"c)
            str = str.Substring(0, str.Length - 4)
            Return str.PadLeft(20, "0"c)
        End Get
    End Property
End Class
Миниатюры
Как получить список файлов определенных типов  
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2016, 18:37
Помогаю со студенческими работами здесь

Copy-Item -Recurse с исключением определённых типов файлов
День добрый. Понадобилось мне тут скопировать 600 гб файлов с одного файлового сервера на другой. Там преимущественно офисные документы,...

Проверка наличия файлов определённых типов на всех компьютерах сети
Здравствуйте! Я в этом деле новичок, и вообще пока не смыслю в скриптах... Но хочу разобраться. Сейчас от начальник поступила...

Как получить список директорий и список файлов в директории?
Очень нужно организовать поиск на диске. Как искать в нутри файла я знаю, а вот как искать вовсех файлах на диске и в поддиректориях незная

Показ список файлов из определенных папок
Здравствуйте. Короче идея такая. Есть некоторые виды папок DATA Campaigns Downloads Maps Multiplayer Maps Single Maps Battle...

Как получить список файлов ? FileSystemObject ???
Podskazhite PLEASE !!! Ect' folder, v nem files bez rashireniya. Kak mne po click poluchit' imena files i zapolnit' imi list box ? ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru