2
A
回答
3
一個班輪這很可能是內存消耗非常瘦:
File.WriteAllLines(
targetFileName,
Directory.GetFiles(srcFolder, "*.txt")
.SelectMany(f=>
File.ReadLines(f).Concat(new[] {Environment.NewLine})));
希望你可以在年底額外的換行符生活。
1
我不會爲你寫代碼,但我會指出你正確的方向。
- 使用System.IO.Directory.GetFiles()方法通過文件
- 使用StreamReader迭代中的緩衝區附加每個文件後換行來讀取文件。使用StreamWriter將緩衝區寫回輸出文件。
0
我不爲你寫的代碼,要麼,但我用下面的代碼來做到這一點,我記得文件被命名爲的1.txt,2.txt等等,所以我可以通過整個文件夾
環private void merge()
{
string[] fullFile = new string[152];
System.IO.StreamWriter data = new System.IO.StreamWriter(filepath);
for (int i = 1; i < 152; i++)
{
try
{
string fullfile = System.IO.File.ReadAllText(filepath);
data.WriteLine(fullfile + "return\n");
}
catch { }
}
data.Close();
}
1
下面是使用Directory.EnumerateFiles
的聲明性方法,該方法適用於大型目錄,因爲它會在文件名發現時對其進行流式處理。這種方法的
var lines = from file in Directory.EnumerateFiles(directory, "*.txt")
from line in File.ReadLines(file).Concat(new[]{Environment.NewLine})
select line;
File.WriteAllLines(outputFileName, lines);
優點:
- 讀,易於理解
可並行如果你有很多文件(> 10000):
只需添加
.AsParallel()
到第一行的結尾。內存使用率當然會增加,但是您可以更快地完成工作,特別是對於數十萬個文件。
+0
+1 cos我學到了一些新東西('Directory.EnumerateFiles') – spender
相關問題
- 1. 如何將每個100個文件合併到一個目錄中?
- 2. 將2個svn目錄自動合併到一個目錄中
- 3. 將文件複製到一個目錄中,並附上其原始主目錄
- 4. 從行中grep一個數字並將其附加到文件
- 5. 命令行在一個目錄中合併多個文件?
- 6. C#將一個目錄與另一個目錄合併
- 7. 將多個記錄合併到一個表中的一行
- 8. 將javascripts合併到一個文件中
- 9. Elisp - >將目錄中的所有文件合併到一個文件中
- 10. 將一個非代碼文件合併到多個項目中
- 11. 附加一個換行符到一個NSString
- 12. 將文件從一個目錄複製到另一個目錄
- 13. 將文件從一個目錄複製到另一個目錄
- 14. 將文件從一個目錄移動到另一個目錄
- 15. 將文件從一個目錄複製到另一個目錄
- 16. 將文件從一個目錄複製到另一個目錄
- 17. 將文件從一個目錄移動到另一個目錄
- 18. 將文件從一個目錄移動到另一個目錄
- 19. 將文件從一個目錄複製到另一個目錄
- 20. FLEX - 每次換行時都要讓textArea發送一個事件?
- 21. 將每行輸入文件中的每個字符添加到列表中,並在每行之後將每個列表添加到另一個列表中
- 22. 將_添加到文件夾中的每個文件/目錄
- 23. 遍歷每個h2並將它們的值附加到另一個div集合
- 24. 轉換文件並將它們放在另一個目錄中
- 25. 製作多個目錄並將文件放到每個目錄中
- 26. tar文件在一個目錄中,並將檔案放在另一個目錄
- 27. 我將如何將多個目錄壓平併疊加到一個目錄中?
- 28. 目標文件得到編譯每從一個目錄切換到另一個時,並調用從那裏
- 29. 在一個目錄中找到一個特定的文件並刪除目錄
- 30. 將幾個mstest trx文件合併到一個trx文件中
你有什麼試過的?基於你問題上的標籤,它看起來像你正朝着正確的方向前進。 – JohnFx