[英]how to read all text from all txt files(*.txt)
我需要使用最快的方法(在我看來是readalltext)如何從txt文件readalltext,我不知道如何糾正代碼:
string[] files = Directory
.GetFiles(@"C:\Users\Wiz\Desktop\test","*.txt", SearchOption.AllDirectories);
var letter = File.ReadAllText(files);
File.ReadAllText
期望一個文件的路徑,但Directory.GetFiles
返回一個文件數組。 所以你必須使用loop / linq來獲取每個文件的文本
string sDir = @"C:\Users\Wiz\Desktop\test";
string[] files = Directory.GetFiles(sDir, "*.txt", SearchOption.AllDirectories);
string[] letters = files.Select(x => File.ReadAllText(x)).ToArray();
對我來說有趣的是要指出,這是最快的方式,因此我嘗試了3種技術:
Parallel Approch在這種情況下效果最好, Directory.EnumerateFiles
比Directory.GetFiles
快得多(用模式* .txt搜索並包含子目錄)
A - GetFiles和ReadAllText
foreach (var file in Directory.GetFiles("C:\\Program Files (x86)", "*.txt", SearchOption.AllDirectories))
{
var a = File.ReadAllText(file);
}
B - EnumerateFiles和ReadAllText
foreach (var file in Directory.EnumerateFiles("C:\\Program Files (x86)", "*.txt", SearchOption.AllDirectories))
{
var a = File.ReadAllText(file);
}
C - 並行方法
var files = Directory.EnumerateFiles("C:\\Program Files (x86)", "*.txt", SearchOption.AllDirectories);
Parallel.ForEach(files,(current) =>
{
var a = File.ReadAllText(current);
});
隨意添加想法,想法,....
您需要使用循環來讀取所有文件,因為ReadAllText將一次讀取一個文件。
foreach (var file in files)
{
// Do the reading of your file here.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.