Trên hệ thống Windows Server 2012 R2, chương trình Kotlin sử dụng FileChannel.tryLock()
để giữ khóa độc quyền trên một tệp, như sau:
val fileRw = RandomAccessFile(file, "rw")
fileRw.channel.tryLock()
Với khóa này tại chỗ, tôi không thể mở tệp bằng:
- Wordman
- Notepad ++
Lập trình với C #, cho bất kỳ giá trị nào của
FileShare
:using (var fileStream = new FileStream(processIdPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var textReader = new StreamReader(fileStream)) { textReader.ReadToEnd(); }
Từ dòng lệnh,
type
lệnh:C:\some-directory>type file.txt The process cannot access the file because another process has locked a portion of the file.
Internet Explorer (vâng, tôi đã tuyệt vọng)
Tôi có thể mở nó bằng Notepad.
Làm thế nào quái là Notepad có thể mở một tập tin bị khóa mà không có gì khác có thể?