Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> список фалов во всех подкаталогах, как получить пути? 
V
    Опции темы
Kirill89
Дата 1.6.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 17.10.2006
Где: Питер

Репутация: нет
Всего: 4



Указана папка, мне нужно получить список всех файлов в ней и её подпапках. Как это сделать?


--------------------
PM MAIL WWW   Вверх
Kirill89
Дата 2.6.2007, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 17.10.2006
Где: Питер

Репутация: нет
Всего: 4



Извините за лишнее сообщение - решил проблему сам.


--------------------
PM MAIL WWW   Вверх
Exception
Дата 7.6.2007, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



А поделиться решением?
PM   Вверх
Kirill89
Дата 7.6.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 17.10.2006
Где: Питер

Репутация: нет
Всего: 4



Использовал два компонента от vb6 dirlist и filelist
Код

Imports VB = Microsoft.VisualBasic
    Dim CDir1 As Object = New Microsoft.VisualBasic.Compatibility.VB6.DirListBox
    Dim CFile1 As Object = New Microsoft.VisualBasic.Compatibility.VB6.FileListBox
    Dim FFile() as String
    ReDim FFile(0)
Sub FindFiles(ByVal sPattern As String, ByVal CurrDir As String, ByRef sFound() As String)
        try
        Dim i As Short
        Dim sCurrPath As String
        Dim ii As Short
        Dim iLen As Short
        If VB.Right(CurrDir, 1) <> "\" Then
            CDir1.Path = CurrDir & "\"
        Else
            CDir1.Path = CurrDir
        End If
        For i = 0 To CDir1.DirListCount
            If CDir1.DirList(i) <> "" Then
                System.Windows.Forms.Application.DoEvents()
                Call DirWalk(sPattern, CDir1.DirList(i), sFound)
            Else
                If VB.Right(CDir1.Path, 1) = "\" Then
                    sCurrPath = VB.Left(CDir1.Path, Len(CDir1.Path) - 1)
                Else
                    sCurrPath = CDir1.Path
                End If
                CFile1.Path = sCurrPath
                CFile1.Pattern = sPattern
                If CFile1.Items.Count > 0 Then
                    ' нужные файлы найдены в каталоге
                    For ii = 0 To CFile1.Items.Count - 1
                        ReDim Preserve sFound(UBound(sFound) + 1)
                        sFound(UBound(sFound) - 1) = sCurrPath & "\" & CFile1.Items(ii)
                    Next ii
                End If
                iLen = Len(CDir1.Path)
                Do While Mid(CDir1.Path, iLen, 1) <> "\"
                    iLen = iLen - 1
                Loop
                CDir1.Path = Mid(CDir1.Path, 1, iLen)
            End If
            Next i
        Catch
        End Try
    End Sub
FindFiles("*.txt", "C:/", FFile)

Я помоему где-то когдато это нашел... непомню точно, но этот конкретный пример я нашел в одном из старых проектов с vb6.


--------------------
PM MAIL WWW   Вверх
Exception
Дата 7.6.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



Ну и муть.

Код
Public Function FindFiles (ByVal pattern As String, ByVal dir As String) As String()
    Dim dirInfo As New DirectoryInfo(dir)
    Dim paths As New List(Of String)
    ListFiles (paths, pattern, dirInfo)
    Return paths.ToArray ()
End Sub

Private Sub ListFiles(list As List(Of String), ByVal pattern _
    As String, ByVal dirInfo As DirectoryInfo)

    Dim fsInfos() As FileInfo = dirInfo.GetFiles (pattern)
    For Each fsInfo As FileInfo In fsInfos
        list.Add(fsInfo.FullName)
    Next

    Dim subDirs() As DirectoryInfo = _
        dirInfo.GetDirectories ()
    For Each subDir As DirectoryInfo In subDirs
        ListFiles(list, pattern, subdir)
    Next
End Sub

' ...

Dim found As String() = FindFiles ("*.txt", "C:/")


Это сообщение отредактировал(а) Exception - 7.6.2007, 19:31
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.