【问题标题】:Newbie Question: Read and Process a List of Text Files新手问题:读取和处理文本文件列表
【发布时间】:2010-12-21 18:25:36
【问题描述】:

我对 .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
  ..............

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

【问题讨论】:

    标签: .net vb.net


    【解决方案1】:

    你把它弄得太复杂了,它只有 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
    

    【讨论】:

      【解决方案2】:

      您可以直接从目录中读取所有文件,而不是使用Directory.GetFiles。请参阅页面底部的示例。然后使用File.ReadAllText将文件中的所有文本读入一个字符串。

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

          让你开始的东西:

             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();
                      }
          
                  }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-27
            • 2012-02-07
            • 1970-01-01
            • 1970-01-01
            • 2022-11-04
            • 2013-11-20
            相关资源
            最近更新 更多