新手问题:阅读并处理文本文件列表

时间:2010-12-21 18:25:37

标签: .net vb.net

我是.NET的新手,我正在尝试编写文本处理程序。任务很简单:我有一个存储在一个文件夹中的10,000个文本文件的列表,我正在尝试读取每个文件,将其存储为字符串变量,然后通过一系列函数运行它,然后将最终输出保存到另一个文件夹到目前为止,我只能设法手动输入这样的文件路径(在VB.NET中):

 Dim tRead As System.IO.StreamReader

    Public Function ReadFile() As String

        Dim EntireFile As String

        tRead = File.OpenText("c:\textexample\00001.txt")

        EntireFile = tRead.ReadToEnd

        Return EntireFile

    End Function

 Public Function Step1()
  .....
 End Function

 Public Function Step2()
  .....
 End Function
  ..............

因此,我想知道是否有办法实现这一过程的自动化。例如,可能将所有输入文件路径存储到文本文件中,然后一次读取每个条目,然后将最终输出保存到保存路径中,再次列在文本文件中。 任何帮助是极大的赞赏。 ReplyQuote

4 个答案:

答案 0 :(得分:4)

你太复杂了,只有3行代码。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim Files() As String = IO.Directory.GetFiles("C:\")
    For Each File As String In Files
        Process(IO.File.ReadAllText(File))
    Next
End Sub

Public Sub Process(ByVal s As String)
End Sub

答案 1 :(得分:1)

您可以使用Directory.GetFiles从目录中读取所有文件。请参阅页面底部的示例。然后使用File.ReadAllText将文件中的所有文本读取为字符串。

答案 2 :(得分:1)

您可以将一些System.IO类与Select扩展方法结合起来将文件读入IEnumerable,就像这样......

Directory.GetFiles(myDir, "*.txt").Select(_
    Function(fileName) File.ReadAllText(fileName))

您甚至可以将传递给的lambda表达式扩展为Select来执行所需的任何处理。

答案 3 :(得分:0)

让你入门的东西:

   var files = from file in new DirectoryInfo(@"YourPath").GetFiles()
                    select file;

        foreach (var file in files)
        {
            using (var reader = new StreamReader(file.FullName))
            {
                // Do Stuff
                //string contents = reader.ReadToEnd();
            }

        }