Поиск файлов и сортировка найденного?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Leon144
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 92
Зарегистрирован: 13.12.2008 (Сб) 9:57

Поиск файлов и сортировка найденного?

Сообщение Leon144 » 11.05.2012 (Пт) 20:01

Всем здрасьте.
Собственно код поиска файлов:
Код: Выделить всё
Private Sub Search(ByVal fold As String, ByVal ParamArray mask() As String)
        Dim Dirs As String()
        Dim files As String() = Nothing
        Try
            For Each M As String In mask
                files = System.IO.Directory.GetFiles(fold, M)
                If files.Length > 0 Then Label5.Text = files(files.Length - 1)
             
                    ' РАБОТАЕМ ВОТ С ЭТИМ МЕСТОМ!!!!


                Application.DoEvents()
            Next
            Dirs = System.IO.Directory.GetDirectories(fold, "*", IO.SearchOption.TopDirectoryOnly)
        Catch ex As Exception
        End Try
        Try
            If Dirs IsNot Nothing Then
                For Each cdir As String In Dirs
                    Me.Search(cdir, mask)
                Next
            End If
        Catch

        End Try
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Label8.Text = ("Идет сканирование!")
        Search("C:\", "*.exe")
        Label8.Text = ("Процесс завершен!")
    End Sub


В таком виде код работает на ура. Хочу сделать проверку найденных файлов на предмет их атрибутов.
На место строки : ' РАБОТАЕМ ВОТ С ЭТИМ МЕСТОМ!!!!
Втавляем код:

Код: Выделить всё
   Dim Attr As Integer = System.IO.File.GetAttributes(Label5.Text) And IO.FileAttributes.Hidden
                If Attr <> 0 Then
                    ' код если аттрибут Hidden
                    ListBox1.Items.AddRange(files)
                Else
                    ' Код если аттрибут Normal
                End If


Программа прекращает процесс поиска и выводит сообщение Label8.Text = ("Процесс завершен!") . Помогите разобраться. Что ей не нравиться?
Хотели как лучше, получилось как всегда.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 11.05.2012 (Пт) 21:34

Подумай над этим:
Код: Выделить всё
        Catch ex As Exception
        End Try
Я понимаю, что ошибки связанные с правами доступа надо игнорировать... Но хоть для отладки вывел бы там что-нибудь, или breakpoint поставил, и посмотрел, что происходит.

Эти куски - что-то очень сомнительное
Код: Выделить всё
For Each M As String In mask
Label5.Text = files(files.Length - 1)
как минимум, в плане логичности.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList