Monitorar arquivos gravados em Diretório
Estou criando uma aplicação, onde gravo as concersas telefonicas, com um soft ezafone, e este soft grava as conversas em um determinado diretório. Então o que eu estou precisando:
Saber se foi acrescentado algum arquivo no diretório, e pela data_hora mais antiga pegar o nome deste arquivo e gravar na base como o path para vincular a um atendimento.
A pergunta como fazer isto, qual compnente poderia usar.
Emery
Saber se foi acrescentado algum arquivo no diretório, e pela data_hora mais antiga pegar o nome deste arquivo e gravar na base como o path para vincular a um atendimento.
A pergunta como fazer isto, qual compnente poderia usar.
Emery
Emery
Curtidas 0
Respostas
Aroldo Zanela
11/02/2006
Colega,
Depende da versão do Delphi. Verifique na paleta de componentes Samples se tem um componente denominado ShellChangeNotifier. Se não tiver, informe que te passo o código para implementar isso.
Depende da versão do Delphi. Verifique na paleta de componentes Samples se tem um componente denominado ShellChangeNotifier. Se não tiver, informe que te passo o código para implementar isso.
GOSTEI 0
Emery
11/02/2006
Uso o Delphi 7 e existe o componente que vc me indicou, mas como faria para pegar o nome do ultimo arquivo gravado no diretório e o path junto.
Emery
Emery
GOSTEI 0
Aroldo Zanela
11/02/2006
Colega,
Configure a propriedade NotifyFilters e no manipulador de eventos ´OnChange´ você deverá implementar uma rotina para controlar isso. Infelizmente não tenho nada pronto aqui para complementar este tópico.
Configure a propriedade NotifyFilters e no manipulador de eventos ´OnChange´ você deverá implementar uma rotina para controlar isso. Infelizmente não tenho nada pronto aqui para complementar este tópico.
GOSTEI 0
Edilcimar
11/02/2006
todo arquivo tem uma data e hora, basta pegar a data como a atual e fazer uma pesquisa sobre a maior hora existente, aí terá o último arquivo
GOSTEI 0
Aroldo Zanela
11/02/2006
Colega,
Para obter a lista dos arquivos desejados de uma determinada pasta:
Para pegar o arquivo mais novo:
Deve ter um jeito mais fácil, mas fiz da forma que me lembrei no momento.
Para obter a lista dos arquivos desejados de uma determinada pasta:
function ListFiles(const Dir, Wildcard: string; const List: TStrings): Boolean; var FileSpec: string; SR: TSearchRec; Success: Integer; begin Assert(Assigned(List)); Result := DirectoryExists(Dir); if not Result then Exit; FileSpec := Dir+´\´; if Wildcard = ´´ then FileSpec := FileSpec + ´*.*´ else FileSpec := FileSpec + Wildcard; Success := FindFirst(FileSpec, faAnyFile, SR); try while Success = 0 do begin if (SR.Name <> ´.´) and (SR.Name <> ´..´) and (SR.Attr and faVolumeId = 0) then List.Add(Dir+´\´+ SR.Name); Success := FindNext(SR); end; finally FindClose(SR); end; end;
Para pegar o arquivo mais novo:
var List: TStringList; I, N: Integer; MostRecentFile: string; MostRecentDate: TDateTime; begin List := TStringList.Create; if ListFiles(´C:\TEMP´,´*.*´,List ) then begin N := List.Count-1; for I := 0 to N do begin if FileDateToDateTime(FileAge(List.Strings[I]))>MostRecentDate then begin MostRecentDate := FileDateToDateTime(FileAge(List.Strings[I])); MostRecentFile:= List.Strings[I]; end; end; ShowMessage(MostRecentFile); end; end;
Deve ter um jeito mais fácil, mas fiz da forma que me lembrei no momento.
GOSTEI 0
Emery
11/02/2006
valeu ! obrigado
GOSTEI 0
Macario
11/02/2006
Opa bom dia colegas.
Como faço para o ShellChangeNotifier notificar em tempo real?
Ele so me mostra a mensagem se eu voltar a aplicação de exemplo que criei.
Estou querendo criar uma serviço que ao identificar qualquer alteração em um determinado diretorio, ele peça ao usuário para enviiar um email.
A parte do email eu sei fazer ja pra por isso em serviço é que estou me perdendo.
Qualquer indicação ou exemplo é de grande ajuda.
Um abraço. 8) :arrow:
Como faço para o ShellChangeNotifier notificar em tempo real?
Ele so me mostra a mensagem se eu voltar a aplicação de exemplo que criei.
Estou querendo criar uma serviço que ao identificar qualquer alteração em um determinado diretorio, ele peça ao usuário para enviiar um email.
A parte do email eu sei fazer ja pra por isso em serviço é que estou me perdendo.
Qualquer indicação ou exemplo é de grande ajuda.
Um abraço. 8) :arrow:
GOSTEI 0
Macario
11/02/2006
Up :!:
Não teria algum outro componente?
grato.
Não teria algum outro componente?
grato.
GOSTEI 0
Macario
11/02/2006
UP :!: :arrow: :idea:
GOSTEI 0