Acho que não preciso dizer mais nada!!! Hehehe Mas aí vai mais uma dica: imagine que seu arquivo é grande (tipo, 500MB) e há um processo que está gravando dados nesse arquivo.
A função descrita indicará que o arquivo está em uso somente se o processo não tiver finalizado a gravação no arquivo. Como o Walter explicou, o notepad e outros editores simples não bloqueiam o arquivo para edição... eles abrem com GENERIC_READ e depois usam GENERIC_WRITE para salvar. Se precisar de algo, dá um toque aí... Abraço. -------------------------------------------------------------------------------- Atenciosamente: Eduardo Cláudio Nicácio Analista Programador JR. Fábrica 02 - CTIS Tel.: (11) 3150-6834 [EMAIL PROTECTED] ----- Original Message ----- From: Walter Alves Chagas Junior To: delphi-br@yahoogrupos.com.br Sent: Thursday, March 15, 2007 11:14 AM Subject: RES: [delphi-br] Processar Arquivos - FTP Alguns programas bloqueiam o arquivo para uso, como é o caso do Word, do Query Analyser e do AutoCad. Alguns outros, como o Notepad, por exemplo, não fazem isto. Tanto que voce pode abrir um mesmo aquivo em 3 blocos de notas simultaneamente e salvar em qualquer um deles. E a função trabalha sobre a API do Windows né... []s Walter Alves Chagas Junior Projeto e desenvolvimento de sistemas Telemont Engenharia de telecomunicações S/A Belo Horizonte - MG - Brasil [EMAIL PROTECTED] Fone: (31) 3389-8217 Fax: (31) 3389-8215 -----Mensagem original----- De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Diogo Viegas Enviada em: quinta-feira, 15 de março de 2007 11:07 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Processar Arquivos - FTP Blz Edu achei a function abaixo. O problema é que se abro o arquivo log.txtvia notepad e escrevo qualquer coisa nele e NÃO salvo, a function me retorna dizendo que o arquivo não está em uso. function IsFileInUse(fName : string) : boolean; var HFileRes : HFILE; begin Result := false; if not FileExists(fName) then exit; HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE,0 {this is the trick!}, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); Result := (HFileRes = INVALID_HANDLE_VALUE); if not Result then begin CloseHandle(HFileRes); end; end; // codigo para validação da funcion acima: if IsFileInUse('C:\log.txt') then Showmessage('arquivo não pode ser processado') else ShowMessage('arquivo pode ser processado'); Alguma dica? Em 15/03/07, Edu Nicácio <[EMAIL PROTECTED]> escreveu: > > Esta dica foi postada aqui semana passada. > > Tenta dar uma olhada nas mensagens anteriores que com certeza ela está lá. > > Abraço. > > ---------------------------------------------------------- > Atenciosamente: > > Eduardo Cláudio Nicácio > Analista Programador JR. > Fábrica 02 - CTIS > Tel.: (11) 3150-6834 > [EMAIL PROTECTED] <rsn01.web03%40telesp.com.br> > > > ----- Original Message ----- > From: Diogo Viegas > To: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > Sent: Thursday, March 15, 2007 9:50 AM > Subject: [delphi-br] Processar Arquivos - FTP > > Srs, > > Alguém teria alguma rotina que verifique se o arquivo a ser processado não > está em uso por um servidor FTP ou outro serviço qualquer? > Tenho um driver que carrega arquivos de um diretório, processa e carrega > para o banco de dado e por algum motivo quem está descarregando o arquivo > no > diretório que eu busco os arquivos avisa que o serviço que envia por parte > dele trava. Assim só quero processar arquivos que estão 100% entregues. > > Obrigado. > Att. > > [As partes desta mensagem que não continham texto foram removidas] > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas]