Чтение имен файлов

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

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

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Чтение имен файлов

Сообщение lord0n » 02.12.2005 (Пт) 14:32

Доброго времени суток.За vb.net я сел только неделю назад, так что еще очень мало знаю.Может быть кто-нибудь знает как считать названия файлов из папки рекурсивно, т. е. со всеми файлами в поддиректорияхЗарание спасибо.
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 02.12.2005 (Пт) 16:10

ты уточни, надо ли тебе сохранить структуру, или же просто все имена файлов нужны?

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 02.12.2005 (Пт) 16:16

areh писал(а):ты уточни, надо ли тебе сохранить структуру, или же просто все имена файлов нужны?


в том то и дело что нужны имена файлов с путями
как это делает винамп в файле плейлиста
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 05.12.2005 (Пн) 7:38

ну вот так навеное можно:

Код: Выделить всё
   Dim FileList() As String

   Sub GetFileList(ByVal Folder As String, ByVal SearchPattern As String)
      Dim tmpArr() As String = IO.Directory.GetFiles(Folder, SearchPattern)
      Dim OffSet As Integer
      Dim i As Integer

      If FileList Is Nothing Then
         ReDim FileList(tmpArr.GetUpperBound(0))
      Else
         OffSet = FileList.GetUpperBound(0) + 1
         ReDim Preserve FileList(OffSet + tmpArr.GetUpperBound(0))
      End If

      For i = 0 To tmpArr.GetUpperBound(0)
         FileList(OffSet + i) = tmpArr(i)
      Next

      tmpArr = IO.Directory.GetDirectories(Folder)
      For i = 0 To tmpArr.GetUpperBound(0)
         GetFileList(tmpArr(i), SearchPattern)
      Next
   End Sub


в итоге, в массиве FileList будет список файлов.
SearchPattern - это что-то типа "*.mp3" или просто "*"

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 05.12.2005 (Пн) 8:51

спасибо, но уже нашел алгоритм:
Код: Выделить всё

Public Sub Main()
    Dim fso As New Scripting.FileSystemObject
   
    PrintChilds fso.GetFolder("C:\Program Files")
End Sub

Private Sub PrintChilds(ff As Scripting.Folder)
    Dim f As Scripting.File, fo As Scripting.Folder
   
    For Each f In ff.Files
        Debug.Print f.Path
    Next f
    For Each fo In ff.SubFolders
        Debug.Print fo.Path
        PrintChilds fo
    Next fo
End Sub
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.


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

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

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

    TopList  
cron