我是.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
答案 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();
}
}