【问题标题】:read all files in a directory, then add the content of each file into a listbox?读取目录中的所有文件,然后将每个文件的内容添加到列表框中?
【发布时间】:2014-04-21 12:37:35
【问题描述】:

我正在尝试做一些看似简单的事情,但由于我还是 VB.NET 的新手,所以我需要一些帮助。

我想读取一个包含几百个 txt 文件的目录。然后,将文件的内容添加到列表框中,但每个文件都在 1 行中。因此,假设程序浏览文件夹,它遇到的第一个文件是 info.txt。文件内容为:

“asdasdasdasdasd2312323”在第 1 行,然后“2321321213123213”在第 2 行。如果我尝试将此文件的内容添加到列表框中,它将是 2 行。我只想要列表框中的 1 行。

我知道如何遍历文件夹并读取其中的所有文件,但我不知道如何将文件的内容放入列表框中。

【问题讨论】:

标签: vb.net


【解决方案1】:

查看File 类,它具有称为ReadAllLinesReadLines 的共享方法,它们将是文件的行。此示例适用于两者。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    For Each f In Directory.GetFiles("C:\Temp\Data") 'put your directory path here
        Try
            ListBox1.Items.Add(File.ReadAllLines(f)(0)) 'Read the first line of each file
        Catch ex As ArgumentNullException
            ListBox1.Items.Add("[NO DATA]")   'If no Data catch Error 
        Catch ex As IndexOutOfRangeException
            ListBox1.Items.Add("[NO DATA]")   'If no Data catch Error
        End Try
    Next
End Sub

【讨论】:

  • 非常感谢您提供的那段代码,它对我帮助很大。如果我想阅读所有内容而不是第一个喜欢,我只需删除 (0) 对吗?
  • 是的,那么您需要使用listbox.AddRange 方法而不是Add 方法。零所做的只是选择文件的第一行。
  • 我会继续处理它并尝试更多地理解它:) 非常感谢您的帮助先生
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 2020-10-22
  • 1970-01-01
  • 1970-01-01
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多