Como bloquear apenas um arquivo com propósito?

74

Eu quero manter um bloqueio exclusivo em um arquivo para que ele não possa ser lido ou escrito por qualquer outra coisa. Existe uma ferramenta simples do Windows ou um comando para fazer isso?

Suponho que a ferramenta ou o utilitário implementaria o LockFileEx Função do Windows.

Nota : Eu tentei editores de texto como Notepad e Notepad ++ em um arquivo de texto, mas eles não possuem um bloqueio exclusivo.

    
por John K 09.06.2011 / 04:24

8 respostas

20

Experimente o Easy File Locker (freeware).

    
por 13.10.2011 / 06:50
113

Solução mais simples: no diretório de interesse executado a partir da linha cmd:

notepad >filetolock

Como stdout redirecionado, ele permanecerá bloqueado até que o aplicativo (bloco de notas) seja encerrado.

Observe que o "filetolock" será substituído pelo redirecionamento, portanto, você provavelmente não desejará usar um arquivo existente de qualquer importância. Um "bloco de filas" vazio não importará para o aplicativo que você está tentando testar, pois o aplicativo não poderá abri-lo de qualquer maneira.

    
por 24.09.2013 / 22:09
25

Abra-o com o MS-Excel ... este aplicativo bloqueia um arquivo enquanto está aberto.

    
por 10.06.2011 / 10:11
25

Bloqueie um arquivo sem ferramentas de terceiros , nenhuma alteração no arquivo sendo bloqueada e o arquivo não pode ser copiado

Este script do PowerShell é uma citação de uma resposta a uma pergunta semelhante.

Se você achar útil, você poderá fazer o upvote original responda e não esta postagem.

#Specify the file name
$fileName = "C:\myfile.txt"

#Open the file in read only mode, without sharing (I.e., locked as requested)
$file = [System.io.File]::Open($fileName, 'Open', 'Read', 'None')

#Wait in the above (file locked) state until the user presses a key
Write-Host "Press any key to continue ..."
$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

#Close the file
$file.Close()
    
por 28.12.2014 / 21:17
10

O FileLocker é uma ferramenta de linha de comando freeware / open source.

Uso:

FileLocker [/T LockTime] [/I] [/K] [/Q] file [file...]

/T LockTime     Time in milliseconds to lock the file
/I              Infinite locking until process is killed (default)
/K              Lock file until key is pressed
/Q              Be quiet.
    
por 13.08.2014 / 17:59
3

Não consigo escrever comentários, por isso adiciono as minhas informações desta forma:

link

EDIT: resumo da outra questão:

  • comando de pausa: ( >&2 pause ) >> file2lock.txt

  • Programas MS como Word ou Excel também bloqueiam (funciona para arquivos de texto)

  • Use programaticamente LockFileEx (API do Windows) com LOCKFILE_EXCLUSIVE_LOCK e LOCKFILE_FAIL_IMMEDIATELY

por 14.09.2016 / 09:59
1

Aqui está como eu replico o comportamento do usuário de um arquivo bloqueado para o teste de bug.

Dim s como novo StreamReader ("C: \ test \ sampleFile.txt")

Eu adiciono essa linha ao meu teste de unidade para bloquear o arquivo e, em seguida, executar o teste no modo de depuração para replicar o mau comportamento quando um determinado arquivo é bloqueado.

Ainda não sei como meus usuários de negócios estão bloqueando o arquivo fornecido. Como você disse, o bloco de notas não pode bloqueá-lo exclusivamente.

Felizmente, declarar um transmissor de fluxo bloqueia um arquivo exclusivamente, a menos que você especifique o contrário.

    
por 10.11.2015 / 20:29
-1

Substitua "Your-Password-Here" pela sua senha e salve este script como Locker.bat

*cls
@ECHO OFF
title Folder Locker
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Locker goto MDLOCKER
:CONFIRM
echo Are you sure u want to Lock the folder(Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Enter password to Unlock folder
set/p "pass=>"
if NOT %pass%==Your-Password-Here goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md Locker
echo Locker created successfully
goto End
:End*

Quando você executar o arquivo em lote, ele apresentará o prompt 'Tem certeza de que deseja Bloquear a pasta (S / N)'; digite Y e pressione enter e a pasta será bloqueada.

Execute o arquivo de lote novamente, insira sua senha e a pasta e todos os seus arquivos serão desbloqueados novamente.

    
por 11.12.2017 / 16:33