Copiado de Por que o robocopy ainda copia um arquivo aberto, aberto pelo editor de txt no windows
O Windows herdou do MS-DOS o conceito de "modos de compartilhamento" como uma forma simples de bloqueio de arquivos. Ao abrir um arquivo, você pode escolher se deseja compartilhá-lo para leitura / gravação, somente leitura ou não. Alguns intérpretes de scripts sempre usarão "compartilhar tudo".
No entanto, você pode usar qualquer linguagem de tempo de execução do .NET e o parâmetro 4 Função System.IO.File.Open () . As chances são de que o seu sistema Windows tem um compilador C # (csc.exe) escondido em algum lugar, mas hoje em dia é mais fácil fazer o mesmo no PowerShell:
$fh = [System.IO.File]::Open($path,
[System.IO.FileMode]::Open,
[System.IO.FileAccess]::Read,
[System.IO.FileShare]::None)
O quarto parâmetro pode ser qualquer System.IO .FileShare enum value, por exemplo:
-
[System.IO.FileShare]::None
- não compartilha nada -
[System.IO.FileShare]::Read
- compartilhar leitura (gravação / exclusão de bloco) -
[System.IO.FileShare]::ReadWrite
- compartilhar leitura / gravação (exclusão de bloco)
Quando terminar:
$fh.Close()