读取文本文件
更新:2007 年 11 月
在本课中,您将学习如何使用 My.Computer.FileSystem 对象 在 Visual Basic 中读取文本文件。
上一课写入文本文件说明了如何向图片查看器应用程序添加功能,该程序用于将所收藏图片的名称保存到文本文件。下一步是读取文本文件。这样就可以只查看收藏的图片。
文件基础知识
在读取文本文件之前,应当了解某些事项。Visual Basic 中的 My 对象使文件的操作更容易。您可以使用 My.Computer.FileSystem 对象的 My.Computer.FileSystem.ReadAllText 方法读取计算机上的文件。
包含由逗号分隔的字符串的文本文件称为“逗号分隔”文本文件。文本文件中的每一项称为一个“字段”。若要读取逗号分隔文本文件的内容,可以使用 My.Computer.FileSystem.OpenTextFieldParser 方法。
在此过程中,需确保在尝试加载收藏夹文本文件前该文件位于“文档”文件夹中。应用程序将显示一条消息告知用户文件是否存在。
说明: |
---|
在 Windows XP 中,有一些特殊的文件夹,分别命名为“我的文档”、“图片收藏”和“我的音乐”。在 Windows Vista 中,这些文件夹的名称中没有“我的”,而分别命名为“文档”、“图片”和“音乐”。不过,本课中的代码可同时在 Windows XP 和 Windows Vista 上运行。 |
试一试!
读取逗号分隔的文本文件
打开上一课中的图片查看器项目。如果您尚未完成上一课,请转到写入文本文件并完成该课,然后再继续。
在“解决方案资源管理器”中,单击“Form1.vb”,然后在“视图”菜单中单击“设计器”。
在窗体中添加“Button”控件,并将它置于“添加到收藏夹”按钮旁边。
更改此按钮的下列属性:
属性
值
Name
LoadFavorites
Text
加载收藏夹
Size
85, 23
双击这个新的“Button”控件以在代码编辑器中添加默认事件处理程序。
在 LoadFavorites_Click 事件处理程序中,添加下列代码以清除列表框和图片框的内容。如果不先清除列表框,则每次单击“Load Favorites”(加载收藏夹)按钮时,文件路径和名称都会追加到列表中。
' Clear the picture box and the list box. Me.ListBox1.Items.Clear() Me.PictureBox1.ImageLocation = ""
添加下面的 If 语句检查 FavoritePictures 文本文件是否存在。如果不存在,通知用户该文件不存在。
Dim FavoritePictures As String = _ My.Computer.FileSystem.SpecialDirectories.MyDocuments _ & "\FavoritePictures.txt" If My.Computer.FileSystem.FileExists(FavoritePictures) Then ' Add code to read text from a file. Else MsgBox("There is no favorites file yet. Click Load" _ & " Pictures," & vbCrLf & "select a picture, and" _ & " then click Add to Favorites.", MsgBoxStyle.OkOnly, _ "Picture Viewer") End If
用下面的代码替换 If 语句和 Else 语句之间的注释。这些代码使用 OpenTextFieldParser 方法读取 FavoritePictures.txt 文件的内容。然后指示文本分隔符为逗号。
' Open the FavoritePictures text file by using ' OpenTextFieldParser. Dim MyReader As Microsoft.VisualBasic.FileIO.TextFieldParser MyReader = My.Computer.FileSystem.OpenTextFieldParser( _ FavoritePictures) MyReader.SetDelimiters(",")
在上一步中添加的代码下面添加以下代码。此代码循环访问文本文件中的字段,然后在将每个文件添加到“ListBox”控件之前,检查文件是否存在。随后将关闭 TextFieldParser。
' Using a comma (,) as a delimeter, parse each field in ' the text file and add it to the list box. Dim textFields As String() = MyReader.ReadFields() For Each currentField As String In textFields If My.Computer.FileSystem.FileExists(currentField) Then Me.ListBox1.Items.Add(currentField) End If Next ' Close the TextFieldParser. MyReader.Close()
按 F5 运行代码。
单击“Load Favorites”(加载收藏夹)按钮加载在 FavoritePictures.txt 文件中列出的文件。
单击列表框中的某项,以在图片查看器中查看图片。
后续步骤
在本课中,您学习了如何读取逗号分隔的文本文件以及如何向列表中添加文件中的各项。在下一课中,您将学习如何从“文档”文件夹中删除收藏夹文本文件。
下一课:删除文本文件