Member 11856456 Ответов: 1

Переход через определенный каталог, чтобы показать папки и файлы, связанные с этими папками в treeview


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

Я не уверен, что я делаю неправильно, вот мой код:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim dir = "C:\Users\jj\Documents\Visual Studio 2017\Projects\windows media\windows media\videos"



       Dim I As Integer
       I += 1

           Dim dir1 = "C:\Users\jj\Documents\Visual Studio 2017\Projects\windows media\windows media\videos\"

       ' once inside your directory then filter the type of items you want to show, if you want all files just remove the text
       'filter and leave the dir.
       For Each direct As String In System.IO.Directory.GetDirectories(dir)

           'this line of code adds the filtered folders to a treeview control
           TreeView1.Nodes.Add(System.IO.Path.GetFileNameWithoutExtension(direct))

       Next

       For Each file As String In System.IO.Directory.GetFiles(dir1, "*.mp4")
           TreeView1.Nodes(I).Nodes.Add(System.IO.Path.GetFileNameWithoutExtension(file))
       Next



   End Sub


Как вы можете видеть, я использовал как getdirectories, так и getfiles. Я попытался использовать цикл с целым числом, чтобы пройти через каждую папку, проблема в том, что он показывает только папки и никаких файлов.

Что я уже пробовал:

Я пытался изменить путь и немного изменить код, но результат все тот же.

1 Ответов

Рейтинг:
7

Ralf Meier

Я немного изменил ваш код, чтобы сделать его тестируемым для меня :

Dim dir1 = "C:\windows"

 ' once inside your directory then filter the type of items you want to show, if you want all files just remove the text
 'filter and leave the dir.
 For Each direct As String In System.IO.Directory.GetDirectories(dir1)
     Dim dir As String = System.IO.Path.GetFileNameWithoutExtension(direct)
     'this line of code adds the filtered folders to a treeview control
     TreeView1.Nodes.Add(dir, dir)
     Dim inx As Integer = TreeView1.Nodes.Count
     Try
         For Each file As String In System.IO.Directory.GetFiles(direct + "\", "*.*")
             TreeView1.Nodes(inx - 1).Nodes.Add(System.IO.Path.GetFileName(file))
         Next
     Catch ex As Exception
     End Try
  Next


Но я думаю, что это вы можете увидеть, что должно быть изменено в вашем коде ...


Member 11856456

Я вижу, что были только незначительные изменения, чтобы заставить этот код работать должным образом. Спасибо за вашу помощь.

Ralf Meier

Добро пожаловать.
Спасибо за Ваш голос ... :)