Nem todos os programas bloqueiam arquivos quando abertos para edição
-
O Windows possui dois tipos de bloqueios de arquivos, bloqueios compartilhados e bloqueios exclusivos. Os bloqueios compartilhados permitem que outros programas leiam o arquivo, mas negam acesso de gravação a outros programas. Bloqueios exclusivos impedem que outros programas acessem o arquivo por completo. Um programa pode usar qualquer tipo de bloqueio, conforme necessário.
-
Os programas podem "abrir" arquivos para edição, mas não bloqueá-los. O que realmente acontece aqui é que o arquivo é carregado em um buffer na memória e o status do arquivo não é verificado até que seja operado novamente. Um arquivo "aberto" dessa forma não está realmente em usar e pode ser manipulado livremente por outros programas ou pelo próprio sistema, que permite continuar editando o arquivo inexistente e salvá-lo em um novo arquivo.
-
O bloco de notas não bloqueia o arquivo aberto, o que significa que o arquivo pode ser excluído enquanto está aberto no Bloco de notas e o programa não notará que o arquivo foi excluído até tentar abri-lo novamente. Da mesma forma, o Paint não bloqueia o arquivo e apenas percebe que o arquivo é excluído quando ele tenta abrir ou salvá-lo.
-
O Word, por outro lado, bloqueia documentos quando os abre ( edit: da minha pesquisa, parece que o bloqueio é exclusivo apenas quando o Word está lendo ou gravando no arquivo e é compartilhado do contrário ). Como resultado, você não pode excluir arquivos que estão atualmente abertos no Word.
Abrir um arquivo sem bloqueá-lo pode ser arriscado
-
Embora seja simples apenas carregar o arquivo na memória e não tocá-lo até que seja necessário, fazê-lo sem bloqueá-lo implica o risco de um condição de corrida onde um programa pode editar o arquivo sem que as alterações sejam refletidas em outro problema. Esse outro programa (que pode muito bem ser o Bloco de Notas ou o Paint) não verá as alterações e elas serão perdidas quando você salvar o arquivo nesse programa.
-
Esse risco de condições de corrida é o motivo pelo qual o Microsoft Word (e outros programas do Office) bloqueiam arquivos quando eles são abertos. Por outro lado, como exemplo de uma solução alternativa, o Notepad ++ não bloqueia arquivos abertos para que outros programas possam continuar manipulá-los. No entanto, ele avisará ao usuário se ele detectar que o arquivo foi alterado ou excluído, perguntando ao usuário se deve recarregar o arquivo do disco ou fechá-lo, respectivamente - essas duas ações descartariam as alterações do usuário.