Tôi có một quy trình chọn một loạt tệp "xml". Lý do tôi đặt xml trong dấu ngoặc kép là văn bản trong tệp không có phần tử gốc tạo thành xml không hợp lệ. Trong quá trình xử lý của tôi, tôi muốn sửa lỗi này và mở mỗi tệp thêm một nút gốc vào đầu và cuối của mỗi tệp, rồi đóng nó lại. Đây là những gì tôi đã có trong tâm trí, nhưng điều này liên quan đến việc mở tập tin, đọc toàn bộ tập tin, gắn thẻ trên các nút, và sau đó viết toàn bộ tập tin ra. Các tệp này có thể có kích thước lớn hơn 20 MB.Thêm văn bản vào đầu và cuối của tệp trong C#
foreach (FileInfo file in files)
{
//open the file
StreamReader sr = new StreamReader(file.FullName);
// add the opening and closing tags
string text = "<root>" + sr.ReadToEnd() + "<root>";
sr.Close();
// now open the same file for writing
StreamWriter sw = new StreamWriter(file.FullName, false);
sw.Write(text);
sw.Close();
}
Bất kỳ đề xuất nào?
Chỉ cần tò mò: Sử dụng một chuỗi ở đây sẽ có hại cho hiệu suất, hoặc là lớp chuỗi C# đủ tốt cho điều này? – schnaader
Lý do chính không sử dụng chuỗi là nó không thay đổi, nghĩa là mỗi lần bạn thêm thứ vào chuỗi, bạn phải tạo một đối tượng String mới. Kể từ khi mã của ông chỉ có 2 concatenations, tôi không thấy bất kỳ lợi thế trong việc sử dụng StringBuilder, nhưng có lẽ tôi đang thiếu một cái gì đó. Như Earwicker lưu ý mặc dù, có một phương pháp tốt hơn. –
Tôi đã xem qua câu hỏi này vì tôi muốn các tệp nhật ký của mình có thông báo mới nhất ở trên cùng. Bây giờ tôi đã di chuyển quá trình ghi vào bảng và sắp xếp theo DateTime .. :) –