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