Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Поиск файла


Автор: amt 12.7.2005, 15:17
Привет всем!
Возникла такая проблема.
smile Есть база в Access (на случай всякий - офис XP). В базе куча названий песен. На винте есть тоже куча файлов mp3, wav и т.д. Нужно по нажатию кнопки в форме отыскать файлы на винте в чьих именах присутсчтвуют названия песен из базы. Может быть полное совпадение или отдельные слова. Короче нужно организовать поиск по маске.
Пробовал рекурсивный обход папок
Код

Dim fso As New FileSystemObject
Dim file As String
Dim inpath As String

Private Sub Command1_Click()
Dim exists As Boolean
exists = FileExists("flag.doc", "E:\")
Text1.Text = inpath
End Sub

Private Function FileExists(Name As String, Path As String) As Boolean
If (Not fso.FolderExists(Path)) Then
   Exit Function
End If
file = Name
If Right(Path, 1) <> "\" Then Path = Path & "\"
FileExists = Help(Path)
End Function

Private Function Help(Path As String) As Boolean
On Error Resume Next
Dim sfld As Folder

'Text1.Text = Path

'условие остановки рекурсии
If fso.FileExists(Path & file) Then
   inpath = Path
   Help = True
   Exit Function
End If

'погружение в рекурсию (в следующие подпапки)
For Each sfld In fso.GetFolder(Path).SubFolders
   DoEvents
   If Help(sfld.Path & "\") Then
       Help = True
       Exit For
   End If
Next
End Function

Но насколько японял он ищет только конкретный файл в папке.
Не помню, но по-моему есть CommonDialog отвечающий за поиск файлов. Но отыскать его в Acess мне не удалось.
Помогите, плиз. smile
С уважением,
АМТ

Автор: cardinal 12.7.2005, 18:41
Цитата(amt @ 12.7.2005, 13:17)
Короче нужно организовать поиск по маске.

http://www.vb-helper.com/howto_find_files_using_dir.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)