2010-12-21 63 views
1

我完全不熟悉.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 
    .............. 

我想知道,因此,如果有自動完成這一過程的一種方式。也許例如將所有輸入文件路徑存儲到文本文件中,然後一次讀取每個條目,然後將最終輸出保存到保存路徑中,並再次列在文本文件中。 任何幫助,不勝感激。 回覆引用

回答

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

     } 
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

你可以結合幾個System.IO類與選擇擴展方法來讀取文件到一個IEnumerable,像這樣......

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

你甚至可以延長lambda表達式你通過選擇來做任何需要的處理。