С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/58: Рейтинг темы: голосов - 58, средняя оценка - 4.81
Программист
 Аватар для Сергей.NET
416 / 416 / 7
Регистрация: 10.09.2010
Сообщений: 1,344

Поиск файлов по маске

10.12.2010, 19:21. Показов 11320. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможно ли сделать так ,чтобы программа сканировала диски и нашла файлы в формате .jpg ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2010, 19:21
Ответы с готовыми решениями:

Поиск файлов по маске
Как реализовать поиск файлов по маске "*.txt"? Файлы могут быть в любой папке диска C: или даже D:

Провести рекурсивный поиск файлов по маске
всем привет необходимо провести рекурсивный поиск файлов по маске, использую Winapi, а именно Findfirstfile, findnextfile, findclose. ...

Копирование файлов по маске *.*
Подскажите пожалуйста как копировать файлы по маске *.* Всюду нахожу только CopyFile(sourceFileName, destFileName)

16
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
10.12.2010, 20:38
Конечно можно. Используй Directory.GetFiles, Directory.GetDirectories и рекурсию.

p.s. Тема переименована, а то "Сканер" не совсем подходит.
1
Программист
 Аватар для Сергей.NET
416 / 416 / 7
Регистрация: 10.09.2010
Сообщений: 1,344
10.12.2010, 21:04  [ТС]
Цитата Сообщение от SSTREGG Посмотреть сообщение
Directory.GetFiles, Directory.GetDirectories и рекурсию
с этим классом я работаю в первые, и мне честно говоря не понятно, здесь нашел пример кода, но не понял как его нужно использовать, писать его для кнопки или нет?
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
10.12.2010, 21:50
StaRterprog, наверху в коде форма впишите:
VB.NET
1
2
Imports System
Imports System.IO
В процедуре нажатия кнопки:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
Try
    ' Only get files that begin with the letter "c."
    Dim dirs As String() = Directory.GetFiles("c:\", "c*")
    Console.WriteLine("The number of files starting with c is {0}.", dirs.Length)
    Dim dir As String
    For Each dir In dirs
        Console.WriteLine(dir)
    Next
Catch e As Exception
    Console.WriteLine("The process failed: {0}", e.ToString())
End Try
Только вместо консольного вывода (Console.Write) нужно по другому выводить.
1
Программист
 Аватар для Сергей.NET
416 / 416 / 7
Регистрация: 10.09.2010
Сообщений: 1,344
10.12.2010, 21:58  [ТС]
Цитата Сообщение от Евгений М. Посмотреть сообщение
Catch e As Exception
а можно узнать , что здесь означает е?
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
10.12.2010, 22:02
e - это "объект исключений" (правильнее скажет мсдн). В данном случае он используется для того чтобы узнать, что за ошибка произошла при выполнении кода в Try (если она произошла).
1
Программист
 Аватар для Сергей.NET
416 / 416 / 7
Регистрация: 10.09.2010
Сообщений: 1,344
10.12.2010, 22:04  [ТС]
Выдает ошибку Переменная "e" скрывает переменную во внешнем блоке.
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
10.12.2010, 22:15
Лучший ответ Сообщение было отмечено как решение

Решение

А если так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim Dirs As String()
    Dim files As String()
    Dim cdir As String
    Private Sub Search(ByVal fold As String, ByVal mask As String)
        Try
            files = System.IO.Directory.GetFiles(fold, mask)
            Me.ListBox1.Items.AddRange(files)
            Dirs = System.IO.Directory.GetDirectories(fold, "*", IO.SearchOption.TopDirectoryOnly)
        Catch ex As Exception
        End Try
        If Not Dirs Is Nothing Then
            For Each cdir In Dirs
                Me.Search(cdir, mask)
            Next
        End If
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Search("C:\", "*.jpg")
    End Sub
Добавлено через 3 минуты
Цитата Сообщение от StaRterprog Посмотреть сообщение
Выдает ошибку Переменная "e" скрывает переменную во внешнем блоке.
Правильно выдает
4
Программист
 Аватар для Сергей.NET
416 / 416 / 7
Регистрация: 10.09.2010
Сообщений: 1,344
10.12.2010, 22:18  [ТС]
Теперь говорит Предупреждение 1 Тип переменной "cdir" не будет определен, так как она связана с полем во внешней области видимости.
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
10.12.2010, 22:21
Попробуй, код рабочий. Вон щас пишу прогу для перевода чисел в строковые выражения - там эти предупреждения пачками, так что мне, бросить писать ее?
А если уж на то пошло, сунь эти переменные в начало процедуры, это не будет ошибкой.
1
Программист
 Аватар для Сергей.NET
416 / 416 / 7
Регистрация: 10.09.2010
Сообщений: 1,344
10.12.2010, 22:21  [ТС]
Me.cdir -так ошибок больше нет, но я не понимаю программа работает или нет, после нажатия на кнопку ничего не происходит, может нужно подождать?
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
10.12.2010, 22:24
StaRterprog, прога должна "зависнуть", если висит, значит, ищет.
Избежать этого тебе поможет БэкграундВоркер.
Но если же прога не зависла и кнопка доступна для нажатия - значит, что-то пошло не то.
1
Программист
 Аватар для Сергей.NET
416 / 416 / 7
Регистрация: 10.09.2010
Сообщений: 1,344
10.12.2010, 22:31  [ТС]
Спасибо все получилось, изменил место поиска все нашло, и очень быстро!
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
10.12.2010, 22:33
StaRterprog, и почему-то по второму кругу ищет еще быстрей. По крайней мере у меня так.
1
Программист
 Аватар для Сергей.NET
416 / 416 / 7
Регистрация: 10.09.2010
Сообщений: 1,344
10.12.2010, 22:35  [ТС]
А можно сделать так, чтобы в итоге поиска появились не "адреса" а сами изображения? тут наверно нужен imagelist?
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
10.12.2010, 22:48
Цитата Сообщение от Памирыч Посмотреть сообщение
и почему-то по второму кругу ищет еще быстрей
Потому что работает кэш диска, который всё это дело оптимизирует.
1
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
10.12.2010, 22:57
Цитата Сообщение от StaRterprog Посмотреть сообщение
А можно сделать так, чтобы в итоге поиска появились не "адреса" а сами изображения? тут наверно нужен imagelist?
На форме кнопка. Класс формы:
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
Public Class Form1
    Dim Dirs As String()
    Dim files As String()
    Dim cdir As String
    Private Sub Search(ByVal fold As String, ByVal mask As String)
        Try
            files = System.IO.Directory.GetFiles(fold, mask)
            For Each Pp As String In files
                AddPic(Pp)
            Next
            Dirs = System.IO.Directory.GetDirectories(fold, "*", IO.SearchOption.TopDirectoryOnly)
        Catch ex As Exception
        End Try
        If Not Dirs Is Nothing Then
            For Each cdir In Dirs
                Me.Search(cdir, mask)
            Next
        End If
    End Sub
    Sub AddPic(ByVal PicPath As String)
        Static Lft As Integer = 10
        Static Tp As Integer = 10
        If Lft > Me.Width - 90 Then : Tp += 90 : Lft = 10 : End If
        Dim P As New PictureBox With {.Width = 70, .Height = 70, .Left = Lft, .Top = Tp, .backgroundImage = Image.FromFile(PicPath), .BackgroundImageLayout = ImageLayout.Zoom}
        Controls.Add(P)
        Lft += 90
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        AutoScroll = 1
        Search("C:\program files", "*.jpg")
    End Sub
End Class
Очень не советую это использовать. Во-первых, смысл?. Но важнее то, что скорость поиска ниже на порядок.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.12.2010, 22:57
Помогаю со студенческими работами здесь

Поиск в Access по маске
Vkby! Уж всяко пробовал - что-то не находятся тропинки... Есть таблица Customers с клиентами из которых необходимо выбрать всех с...

Поиск строки по маске
Привет всем! Подскажите, пожалуйста, каким образом средствами .NET (C# или VB) из массива строк найти строку, удовлетворяющую...

Получить в listbox имена файлов по маске из папки
Всем привет. НА форме есть текстовое поле, кнопка и listbox В текстовое поле вводятся через запятую окончания имени файла, например ...

Проверка имен файлов на соответствие определенной маске
Имеются сотни файлов, имена которых необходимо проверять на соответствие стандартам для разных клиентов. Для Клиента 1, имя должно...

Ошибка возникающая при копировании файлов по маске
Помогите исправить ошибку которая возникает при копировании файлов по маске: нашел пример указанный на...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 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