Tôi đang theo dõi tệp văn bản đang được chương trình máy chủ viết. Mỗi khi tập tin được thay đổi, nội dung sẽ được xuất ra một cửa sổ trong chương trình của tôi.Đọc một tệp được sử dụng bởi một quy trình khác
Vấn đề là tôi không thể sử dụng Streamreader
trên tệp vì nó đang là used by another process
. Thiết lập Filestream
với ReadWrite
sẽ không hoạt động tốt vì tôi không thể kiểm soát quá trình đang sử dụng tệp.
Tôi có thể mở tệp bằng notepad. Nó phải có thể truy cập nó mặc dù máy chủ đang sử dụng nó.
Có cách nào tốt để giải quyết vấn đề này không?
Tôi có nên làm như sau không?
- Giám sát các tập tin
- Tạo một bản sao tạm thời của nó khi nó thay đổi
- Đọc bản sao tạm thời
- Xóa các bản sao tạm thời.
Tôi cần lấy văn bản trong tệp bất cứ khi nào máy chủ thay đổi.
Cảm ơn bạn ... Tôi đã không nhận ra rằng FileShare.Read sẽ không chính xác trong trường hợp này. –
Bằng cách sử dụng 'FileShare.ReadWrite | FileShare.Delete' bạn có thể truy cập vào nhiều tập tin hơn nữa. Đó là giá trị cố gắng khi 'FileShare.ReadWrite' là không đủ – Adassko
@Adassko Hoặc khi' FileShare.Read' là không đủ, như trong trường hợp này, và trong tình huống cụ thể của tôi, nơi tôi đã sử dụng trong cùng một loại mã, và đã phải chuyển sang 'FileShare.ReadWrite' để làm cho nó hoạt động. – vapcguy