Tôi có khối mã sau đây khiến tôi đau đầu.FileStream khóa một tệp để đọc và viết C#
Về mặt logic, nó sẽ hoạt động như tôi đang sử dụng luồng phim cung cấp khóa trong câu lệnh sử dụng. Khi nó được vào dòng tạo StreamWriter, nó không nói "tập tin không thể ghi".
Hiện chương trình của tôi là một ứng dụng đa luồng. Bất kỳ chủ đề nào cũng có thể đang cố ghi vào tệp này. Tôi cần chương trình để khóa tập tin, đọc nội dung, kiểm tra nội dung, sau đó viết lại bất kỳ thay đổi nào. Trong quá trình đó, không có chuỗi nào khác có thể truy cập tệp đó.
using (var fs = File.Open(fileLoc, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
var sr = new StreamReader(fs);
var str = sr.ReadToEnd();
var strArray = str.Split(',');
if (strArray.Any(st => st == text))
{
return;
}
sr.Close();
var sw = new StreamWriter(fs);
sw.Write(str + text);
sw.Flush();
sw.Close();
}