Como desativar os bloqueios de arquivos no Windows

1

Como posso desabilitar o bloqueio de arquivos no Windows, para que os arquivos bloqueados possam ser sobrescritos como nos sistemas linux?

Estou desenvolvendo um plugin, que é uma dll. Antes de compilá-lo novamente, eu sempre preciso descarregá-lo no programa, que o carregou. Isso reduziria muito o trabalho, se eu pudesse compilá-lo sempre e apenas recarregá-lo mais tarde descarregando / carregando novamente. Com o linux isso não é problema, o compilador simplesmente sobrescreve o plugin e quando é aberto da próxima vez que a nova versão for usada. O Windows tem um bloqueio de gravação, então o compilador não pode escrevê-lo e anula.

    
por allo 21.06.2017 / 11:19

1 resposta

3

Você não pode "apenas" desativar o bloqueio de arquivos executáveis / de biblioteca.

No entanto, você pode mover ou renomear arquivos em uso, então faça o seu processo de criação mover a DLL existente em outro lugar e compile a nova em seu lugar.

É bem possível que eles não tenham adicionado um switch oculto, pois várias partes do SO assumem que sempre estarão em . Por exemplo, pode ser que o código do sistema de arquivos espere que haja sempre pelo menos um link para um arquivo (e, portanto, o espaço pode ser liberado imediatamente após a exclusão desse último link) - portanto, se forçar a exclusão de um arquivo em uso, pode resultar em vários tipos de corrupção do sistema de arquivos, como dois arquivos usando o mesmo espaço em disco.

Dito isso, The Old New Thing escreveu que, na verdade, não seria difícil permitir a exclusão de arquivos no estilo WinNT no kernel do Linux, e que eles não o fizeram evitar alguns problemas de compatibilidade.

    
por 21.06.2017 / 11:27

Tags