如何搜索特定文本文件的子文件夹

How to search a sub-folder for a particular text file

我有一个名为“艺术”的文件夹,其中包含各种子文件夹,其中一个名为“音乐”。这个“音乐”子文件夹包含各种格式的文本文件:

约翰 Doe.TXT

约翰 Lennon.TXT

埃尔顿John.TXT

现在,在我的表单上,我有两个文本框,用户可以在其中输入艺术家的姓名;

Textbox1.Text = 约翰

Textbox2.Text = 列侬

我想要实现的是,单击此表单上的按钮时,程序会在“The Arts”父文件夹中搜索“Music”子文件夹,然后在该音乐子文件夹中搜索文本与文本框 1 和 2 连接的艺术家姓名完全匹配的文件名。

如果文本文件名与文本框 1 和 2 中串联的艺术家姓名完全匹配,则显示一条消息。如果 Music 子文件夹中没有文本文件名与文本框 1 和 2 连接的名称相匹配;然后显示找不到文件的消息。

下面的代码是不完整的,只是展示了我是如何指定主文件路径的。我不知道如何让程序执行上述操作。

我正在使用 Visual Basic 2010 Express。感谢您的帮助。

Dim FilePath As String
        FilePath = (Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "The Arts\"))

        'This section is where I am stuck and need help...Thank you in advance.

        If File.Exists(FilePath) Then
            MsgBox("File found.")
        Else
            MsgBox("A record does not exist for this artist.")
            Exit Sub
        End If

How to check if a text file name exactly matches the artist name concatenated from Textboxes 1 and 2

您需要先连接文本框中的文本,根据您的示例,需要用 space 分隔。有几种方法可以做到这一点。

例如this:

Dim artistName = TextBox1.Text + " " + TextBox2.Text

this:

Dim artistName = String.Concat(TextBox1.Text, " ", TextBox2.Text)

还有更多方法可以做到这一点。

接下来您需要assemble将此转化为完整的文件路径名。为了便于阅读,分几步完成此操作是有意义的:

' Directory
Dim desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
Dim musicPath = Path.Combine(deskTopPath, "The Arts", "Music"))

' Combine directory name and the name of the file we want to find.
Dim filePath = Path.Combine(musicPath, artistName + ".TXT")

最后,您可以通过调用 File.Exists method.

检查该文件是否存在
Dim found = File.Exists(filePath)