Visual Studio 2010, Visual Basic.NET
Я работаю над программой, в которой содержится оглавление JSON и элемент управления WebBrowser, который отображает только html, который мы им предоставили. Теперь мне нужно дать им возможность искать строки внутри html. Не только открытая html-страница в объекте WebBrowser, но и вся группа html файлов, находящихся в разных папках.
Существует основная папка с несколькими папками. Каждая из этих папок содержит только одну папку. Но внутри этой папки есть несколько html файлов. (Не уверен, что знание структуры папок вообще поможет)
У меня нет кода для этого, так как я никогда не делал ничего подобного раньше, просто хочу, чтобы кто-то указал мне в правильном направлении.
Поскольку html файлы - это просто текстовые файлы, вы можете использовать этот подход.
Чтобы создать этот пример, я создал 2 каталога в каталоге c:\temp, я назвал их InHere и ChildofInHere. Я положил ChildofInHere в InHere, очевидно. Затем я добавил файл SomeFile.html и просто поместил в него слово "Cheese". Вот код, который я тогда создал и побежал против него.
Private _TextFound As Boolean = False
Private Sub Button10_Click(sender As System.Object, e As System.EventArgs) Handles Button10.Click
FindTheText("C:\temp\InHere", "cheese")
MessageBox.Show(_TextFound)
End Sub
Private Sub FindTheText(sDirToLookIn As String, sTextToFind As String)
If IO.Directory.Exists(sDirToLookIn) Then
Dim di As New IO.DirectoryInfo(sDirToLookIn)
For Each dii As IO.DirectoryInfo In di.GetDirectories
FindTheText(dii.FullName, sTextToFind)
Next
If IO.File.Exists(sDirToLookIn & "\SomeFile.html") Then
If IO.File.OpenText(sDirToLookIn & "\SomeFile.html").ReadToEnd.Contains(sTextToFind) Then
_TextFound = True
End If
End If
End If
End Sub
.NET упрощает работу с файлами и каталогами. Надеюсь это поможет.