Su un sistema Windows Server 2012 R2, un programma Kotlin utilizza FileChannel.tryLock()
per contenere un blocco esclusivo su un file, come questo:
val fileRw = RandomAccessFile(file, "rw")
fileRw.channel.tryLock()
Con questo blocco in atto, non riesco ad aprire il file con:
- Taccuino
- Notepad ++
Programmaticamente con C #, per qualsiasi valore di
FileShare
:using (var fileStream = new FileStream(processIdPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var textReader = new StreamReader(fileStream)) { textReader.ReadToEnd(); }
Dalla riga di comando, il
type
comando:C:\some-directory>type file.txt The process cannot access the file because another process has locked a portion of the file.
Internet Explorer (sì, ero disperato)
Io posso aprirlo con il Blocco note.
Come diavolo Notepad è in grado di aprire un file bloccato che nient'altro può fare?