Tôi đã dành khá nhiều thời gian để tìm ra cách thực hiện điều này nhưng không tìm thấy bất kỳ giải pháp hữu ích nào.Cách khóa thủ công tệp cho các ứng dụng khác
Đây là những gì tôi muốn làm. Tôi đang tạo một tệp nhị phân khổng lồ trong ứng dụng của mình. Điều phức tạp là, quá trình yêu cầu tôi thỉnh thoảng đóng FileStream. Vấn đề bây giờ là, thỉnh thoảng các ứng dụng khác (tức là máy quét vi-rút của tôi) đang sử dụng thời điểm ngắn gọn này nơi tệp không bị khóa nữa, để khóa chính tệp đó. hoặc các ứng dụng khác như dropbox, v.v ...
Kết quả là, lần sau tôi cần mở luồng tệp, nó nói rằng nó bị khóa bởi một quy trình khác. Tất cả điều này chỉ xảy ra rất hiếm khi nhưng nó vẫn còn gây phiền nhiễu khi nó xảy ra. Và ngay cả khi tôi vẫn nhận được quyền truy cập tệp, tôi vẫn không muốn tài khoản dropbox tải tệp này lên cho đến khi hoàn tất (có thể mất vài phút).
Điều tôi cần là khả năng khóa tệp theo cách thủ công để ứng dụng của tôi vẫn có thể mở luồng tệp trên tệp này, nhưng không có ứng dụng nào khác có thể cho đến khi tôi mở lại thủ công.
Tôi hình dung một cái gì đó như thế này trong giả:
File.Lock(filepath);
//... do something that opens and closes filestreams on this file
File.Unlock(filepath);
Có cách nào để làm điều này? Giải pháp "giữ cho luồng tệp mở" không hợp lệ. Tôi cố gắng tránh điều đó vì vậy hãy ghi nhớ điều đó.
tôi sửa mã của bạn để được rõ ràng hơn những gì bạn đang mong đợi. –
Trong một từ: 'IsolatedStorageFile' – avishayp
Bạn có thể thay đổi nó thành tệp RO sau đó đổi lại thành RW để chỉnh sửa không? – Paparazzi