2012-06-11 28 views
11

Tôi đang sử dụng C# và đang cố gắng để xuất một vài dòng vào một tệp ASCII. Vấn đề tôi đang gặp là máy chủ Linux của tôi là nhìn thấy những tập tin như:Làm thế nào để WriteAllLines trong C# mà không có CRLF

ASCII text, with CRLF line terminators 

tôi cần tập tin này để được chỉ:

ASCII text 

các CRLF đang gây ra một số vấn đề và tôi đã hy vọng có là một cách trong C# để tạo tệp được định dạng theo cách tôi muốn.

tôi về cơ bản sử dụng mã này:

string[] lines = { "Line1", "Line2" }; 
File.WriteAllLines(myOutputFile, lines, System.Text.Encoding.UTF8); 

Có một cách dễ dàng để tạo ra các tập tin mà không có sự Terminators dòng CRLF? Tôi có thể có thể chăm sóc nó ở phía Linux, nhưng thay vì chỉ tạo ra các tập tin ở định dạng thích hợp ngay từ đầu.

+0

Ra khỏi tò mò: bạn có nhiều kiến ​​thức/e xperience với ASCII hoặc C# lưu trữ các giá trị chuỗi/ký tự bên trong như thế nào? – lyrisey

+0

@mikurski, tôi không có nhiều kiến ​​thức về cách C# lưu trữ các giá trị nội bộ. – jared

+0

Tài liệu .NET MSDN cho lớp String có thể hữu ích cho bạn, đặc biệt là phương thức Replace(). Xem http://msdn.microsoft.com/en-us/library/system.string.aspx – lyrisey

Trả lời

29

Giả sử bạn vẫn thực sự muốn xuống hàng, bạn chỉ muốn ăn dòng thay vì vận chuyển trở lại/thức ăn đường, bạn có thể sử dụng:

File.WriteAllText(myOutputFile, string.Join("\n", lines)); 

hoặc nếu bạn chắc chắn muốn ngắt dòng sau dòng cuối cùng quá:

File.WriteAllText(myOutputFile, string.Join("\n", lines) + "\n"); 

(Ngoài ra, như bạn nói, bạn có thể sửa chữa nó ở phía bên Linux, ví dụ như với dos2unix.)

+0

Tôi tin rằng ở trên có thể tốt hơn như File.WriteAllText (myOutputFile, string.Join ("\ n", lines) + " \ n "); bởi vì chuỗi, Tham gia các dấu phân cách giữa các phần tử, nhưng dấu phân tách phải xảy ra sau khi kết thúc mọi phần tử, nếu không bạn sẽ mất dòng cuối cùng. –

+0

@KenBoorom: "nhưng dấu phân tách phải xảy ra sau khi kết thúc mọi phần tử, nếu không bạn sẽ mất dòng cuối cùng." - bạn sẽ không bị mất dòng cuối cùng, nó sẽ không có ngắt dòng ở cuối. Tôi sẽ thêm rằng như là một lựa chọn mặc dù. –

Các vấn đề liên quan