Verificar se arquivo TXT está em uso
Galera
Preciso verificar se o arquivo txt está sendo usado por outros usuários ou não.
Aguardo
Preciso verificar se o arquivo txt está sendo usado por outros usuários ou não.
Aguardo
Huelbert Oliveira
Curtidas 0
Respostas
Romulo Contro
09/08/2012
tenta renomear ele... se renomear é pq ninguem tá com ele aberto, se não, alguem está usando.
GOSTEI 0
Junior Miranda
09/08/2012
Você também pode tentar deletar o arquivo.
[]´s
[]´s
GOSTEI 0
Deivison Melo
09/08/2012
Boa tarde,
Tente utilizar a função abaixo:
/*inicio*/
function IsFileInUse(FileName: TFileName): Boolean;
var
HFileRes: HFILE;
begin
Result := False;
if not FileExists(FileName) then Exit;
HFileRes := CreateFile(PChar(FileName),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
Result := (HFileRes = INVALID_HANDLE_VALUE);
if not Result then
CloseHandle(HFileRes);
end;
/*fim*/
Exemplo de uso:
/*inicio*/
procedure TForm1.Button1Click(Sender: TObject);
begin
if IsFileInUse(c:\Programs\delphi6\bin\delphi32.exe) then
ShowMessage(File is in use.);
else
ShowMessage(File not in use.);
end;
/*fim*/
Tente utilizar a função abaixo:
/*inicio*/
function IsFileInUse(FileName: TFileName): Boolean;
var
HFileRes: HFILE;
begin
Result := False;
if not FileExists(FileName) then Exit;
HFileRes := CreateFile(PChar(FileName),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
Result := (HFileRes = INVALID_HANDLE_VALUE);
if not Result then
CloseHandle(HFileRes);
end;
/*fim*/
Exemplo de uso:
/*inicio*/
procedure TForm1.Button1Click(Sender: TObject);
begin
if IsFileInUse(c:\Programs\delphi6\bin\delphi32.exe) then
ShowMessage(File is in use.);
else
ShowMessage(File not in use.);
end;
/*fim*/
GOSTEI 0
Huelbert Oliveira
09/08/2012
Essa função funciona somente com EXE, já tinha tentado ela.
GOSTEI 0
Huelbert Oliveira
09/08/2012
Renomeando não deu certo, mesmo utilizando renomeia.
Excluindo também não deu certo, ele deleta mesmo utilizando.
Se fosse um EXE era só utilizar a função acima, mas como é um TXT até agora não encontrei uma solução.
Excluindo também não deu certo, ele deleta mesmo utilizando.
Se fosse um EXE era só utilizar a função acima, mas como é um TXT até agora não encontrei uma solução.
GOSTEI 0
Romulo Contro
09/08/2012
putz, tava testando aqui... realmente, quando é txt, vc pode renomear, apagar, alterar, e fazer o que for... ele nao fica travado =/
to acompanhando o tópico, pq agora fiquei curioso também, mas não tenho idéia :S
to acompanhando o tópico, pq agora fiquei curioso também, mas não tenho idéia :S
GOSTEI 0