簡體   English   中英

如何讀取所有txt文件中的所有文本(* .txt)

[英]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種技術:

概觀

概觀 * ~200蜱

結論

Parallel Approch在這種情況下效果最好, Directory.EnumerateFilesDirectory.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM