С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 57

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

05.11.2012, 19:12. Показов 2522. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть openfiledialog1. При открытии через него одного файла нужно получить имена всех файлов с таким расширением, находящимися в этой папке.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2012, 19:12
Ответы с готовыми решениями:

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

Получить имена всех файлов в папке с другого сервера
В общем смысл такой: Есть 2 сайта на разных серверах. На одном сайте нужно получить название файлов из заранее известной папки со...

Получить имена всех файлов, содержащихся в известной папке
Как можно с помощью FileSystemObject получить имена всех файлов, содержащихся в конкретной папке. Вот такой вопрос. А можно и не с...

9
10 / 10 / 2
Регистрация: 02.11.2012
Сообщений: 65
05.11.2012, 20:00
так?
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
    Private Function GetFiles(ByVal Path As String, ByVal Filter As String)
 
        Dim d As New DirectoryInfo(Path)
        Dim files As List(Of FileInfo) = New List(Of FileInfo)
        files.AddRange(d.GetFiles(Filter))
        Return files
 
    End Function
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Opendlg As New OpenFileDialog
        Dim dir, ext As String
 
        If opendlg.ShowDialog = Windows.Forms.DialogResult.OK Then
            dir = Path.GetDirectoryName(opendlg.FileName)
            ext = Path.GetExtension(opendlg.FileName)
        Else
            'что-то
        End If
 
 
        Dim files As List(Of FileInfo) = GetFiles(dir, "*" & ext)
 
        For Each a In files
            msgbox(a.name)
        Next
    End Sub
1
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 57
06.11.2012, 21:30  [ТС]
Спасибо. Такой вопрос: если есть форма с полем image1 и 3 кнопками: open, next, previous, то как, с тем кодом, при нажатии на next открыть в image1 изображение, следующее в files после открытого изображения, а при нажатии на previous - за?
0
10 / 10 / 2
Регистрация: 02.11.2012
Сообщений: 65
06.11.2012, 21:38
с помощью Count
и проверять, чтобы не ушел за пределами индекса
0
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 57
07.11.2012, 18:10  [ТС]
Не допер, как с count, но есть мысль получить индекс текущего открытого файла, сравнить его в цикле с индексами всех элементов, и, в случае, если индекс какого-либо элемента больше текущего на один, открыть этот элемент и повысить индекс прежнего на 1 для последующих сравнений. Можно ли найти индекс текущего файла и изменить его значение?
0
10 / 10 / 2
Регистрация: 02.11.2012
Сообщений: 65
07.11.2012, 18:46
Цитата Сообщение от Олегарх Посмотреть сообщение
Не допер, как с count, но есть мысль получить индекс текущего открытого файла, сравнить его в цикле с индексами всех элементов, и, в случае, если индекс какого-либо элемента больше текущего на один, открыть этот элемент и повысить индекс прежнего на 1 для последующих сравнений. Можно ли найти индекс текущего файла и изменить его значение?
вот, кривоват, но рабочий:

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
Imports System.IO
 
Public Class Form1
    Private Function GetFiles(ByVal Path As String, ByVal Filter As String)
 
        Dim d As New DirectoryInfo(Path)
        Dim files As List(Of FileInfo) = New List(Of FileInfo)
        files.AddRange(d.GetFiles(Filter))
        Return files
 
    End Function
    Public files As List(Of FileInfo)
    Public dir, ext As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Opendlg As New OpenFileDialog
 
        If Opendlg.ShowDialog = Windows.Forms.DialogResult.OK Then
            dir = Path.GetDirectoryName(Opendlg.FileName)
            ext = Path.GetExtension(Opendlg.FileName)
            PictureBox1.Load(Opendlg.FileName)
        Else
            Exit Sub
        End If
 
        files = GetFiles(dir, "*" & ext)
 
    End Sub
    
    Public imgcount As Integer = 0
    ' >>>
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
 
        If imgcount < files.Count - 1 Then
            imgcount += 1
            PictureBox1.Load(files(imgcount).FullName)
        End If
    End Sub
    ' <<<
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If imgcount <= files.Count - 1 And imgcount > 0 Then
            imgcount -= 1
            PictureBox1.Load(files(imgcount).FullName)
        End If
    End Sub
End Class
1
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 57
07.11.2012, 19:17  [ТС]
проверил в Winforms, так все работает, в wpf - нет, хотя ошибки не выдает. Может, дело в += и =-?
0
10 / 10 / 2
Регистрация: 02.11.2012
Сообщений: 65
07.11.2012, 20:00
Цитата Сообщение от Олегарх Посмотреть сообщение
проверил в Winforms, так все работает, в wpf - нет, хотя ошибки не выдает. Может, дело в += и =-?
wpf не знаю, попробуй тогда так: var = var -+ 1

VB.NET
1
2
3
Dim converter As ImageSourceConverter = new ImageSourceConverter()
Dim imageSource As ImageSource = DirectCast(converter.ConvertFromString(path), ImageSource)
IMG.Source = imageSource
0
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 57
09.11.2012, 18:15  [ТС]
Все работает:
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
 Public count As Integer = 0
 
 
    Private Sub Next_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles след.Click
 
        Try
            Dim files As List(Of IO.FileInfo) = GetFiles(dir, "*" & ext)
            If count <= files.Count - 1 And count > 0 Then
                count -= 1
                Image1.Source = New ImageSourceConverter().ConvertFrom(files(count).FullName)
                Image1.Height = Image1.Source.Height
                Image1.Width = Image1.Source.Width
            End If
        Catch ex As Exception
        
        End Try
    End Sub
 
    Private Sub Previous_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Previous.Click
        Try
            Dim files As List(Of IO.FileInfo) = GetFiles(dir, "*" & ext)
            If count < files.Count - 1 Then
                count += 1
                Image1.Source = New ImageSourceConverter().ConvertFrom(files(count).FullName)
                Image1.Height = Image1.Source.Height
                Image1.Width = Image1.Source.Width
            End If
        Catch ex As Exception
     
        End Try
    End Sub
Но последовательность открытия файлов нескольнко от фонаря.
0
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 57
18.11.2012, 15:38  [ТС]
Путем долгих изысканий я наконец-то нашел выход!!!
При открытии файла:
VB.NET
1
2
3
4
5
6
7
8
9
              files = GetFiles(dir, "*" & "jpg")
                files = GetFiles(dir, "*" & "jpeg")
                files = GetFiles(dir, "*" & "bmp")
                files = GetFiles(dir, "*" & "tiff")
                files = GetFiles(dir, "*" & "png") заполняем массив
                For Each a In files
                    If a.FullName = openfile.FileName Then count = files.IndexOf(a)- проверка на соответствие
                Next
                im = count -получение индекса текущего элемента
При нажатии next:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
   Try
 
          
            If im < files.Count - 1 Then
                im += 1
                Image1.Source = New ImageSourceConverter().ConvertFrom(files(im).FullName) 
                Image1.Height = Image1.Source.Height
                Image1.Width = Image1.Source.Width
                Slider1.Value = 11
            End If
        Catch ex As Exception
            Next_Click(sender, e)
        End Try
при нажатии previous:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
  Try
 
          
            If im <= files.Count - 1 And im > 0 Then
                im -= 1
                Image1.Source = New ImageSourceConverter().ConvertFrom(files(im).FullName) 
                Image1.Height = Image1.Source.Height
                Image1.Width = Image1.Source.Width
                Slider1.Value = 11
            End If
        Catch ex As Exception
            Previous_Click(sender, e)
        End Try
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2012, 15:38
Помогаю со студенческими работами здесь

Изменить имена файлов в папке с расширением .EXM
Здравствуйте! Задача отбросить лишние знаки в названиях файлов в определенной папке, то есть “*****нужная часть**********.EXM”. Сделала вот...

Как вывести список всех файлов в папке с определенным расширением?
Здравствуйте! Есть textbox и кнопка. При нажатии на кнопку нужно, что бы программа &quot;пошла&quot; по пути &quot;C:/Files/&quot; и...

Прочитать все имена файлов в папке с расширением xml и значениями в поле Percent
Как сделать программу на java, которая читает все имена файлов в папке с расширением xml и значениями в поле Percent = &quot;...&quot;...

Как сделать программу, которая читает все имена файлов в папке с расширением xml и значениями в поле Percent = "." тол
Как сделать программу на vba, которая читает все имена файлов в папке с расширением xml и значениями в поле Percent = &quot;...&quot;...

Как создать список всех файлов и папок в данной папке?
Есть только предположение, что нужен модуль DOS, но в описании я не нашёл нужной функции.


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru