Eu escrevi estas funções para um software de envio de dados via e-mail. 
Espero que possam te ajudar.

function IsItLocked(FileName: TFileName): Boolean;
var
  h: THandle;
begin
  h := Windows.CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0,
    nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  Result := (h = INVALID_HANDLE_VALUE);
  if not Result then
    CloseHandle(h);
end;

function IsItLockedRead(FileName: TFileName): Boolean;
var
  h: THandle;
begin
  h := Windows.CreateFile(PChar(FileName), GENERIC_READ, FILE_SHARE_READ, 
nil,
    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  Result := (h = INVALID_HANDLE_VALUE);
  if not Result then
    CloseHandle(h);
end;

function LockedFile(AFileName: TFileName): Boolean;
begin
  Result := (IsItLocked(AFileName) or IsItLockedRead(AFileName));
end;

Sds.

>From: "Ailton Branco" <[EMAIL PROTECTED]>
>Reply-To: delphi-br@yahoogrupos.com.br
>To: delphi-br@yahoogrupos.com.br
>Subject: [delphi-br] Arquivo em Uso
>Date: Thu, 09 Feb 2006 20:28:09 -0000
>
>como descobrir se o arquivo esta em uso????
>
>estou tentando fazer uma rotina para restaurar um backup... mas o meu
>arquivo que vai ser restaurado pode estar em uso... gostaria de saber
>como faço para saber se ele está em uso... ou se possivel até mesmo
>apagar o arquivo em uso... ou tirar ele desta condição para que eu
>possa restaurar o backup...
>
>
>agradeço muito a ajuda...
>
>
>
>
>
>

_________________________________________________________________
MSN Hotmail, o maior webmail do Brasil. http://www.hotmail.com



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a