Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EricaRosana

Monitorar arquivos e pastas no windows

Recommended Posts

Boa tarde galera!!!! beleza??

é o seguinte galera...

Eu preciso desenvolver uma ferramenta que faça o monitoramento de alguns arquivos e pastas (de acordo com o que o usuário selecionar). Monitorar alteração de arquivo, rename, exclusão tanto de arquivo qt de pasta, pois preciso fazer o sincronismo dessas alterações em outra unidade, um backup.

Em resumo o usuário vai escolher algumas pastas e arquivos que serão feito backup, e após isso tenho que monitorar esses arquivos e pastas e manter um sincronismo dessas informações com o destino, e preciso fazer isso simultaneamente.

 

Alguém por favor pode me dar um help!!! uma dica... um site... qualquer coisa p/ me ajudar...

 

muito obrigada....

Érica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja, procurando algumas coisas na itnernet montei uma função para você:

 

function getDataAlteracao(FileName: string): string;
var
	data_int : integer;
begin
	data_int:=FileAge(FileName);
	Result := DateToStr(FileDateToDateTime(data_int)) +' ' + TimeToStr(FileDateToDateTime(data_int));
end;

Esta função retorna a data e a hora da ultima aleteração do arquivo (d/m/y h:m:s). Você pode utilizar um TTimer para utlizar esta função e vericar quando o valor retornado for diferente, ai você sabera que um arquivo foi alterado. Não testei com pastas

 

espero que ajude

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a tds!!!!!

 

Obrigada pela função Raficcha.

 

Eu preciso detectar as alterações em tempo real, pois quero ver se faço o sincronismo apenas das alterações.

por exemplo:

o usuário alterou um arquivo .doc, no momento em que ele salvar esse arquivo quero pegar apenas o que foi alterado e fazer o sincronismo com o backup, para que eu não precise copiar e colar o arquivo todo.

você já viu algo assim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, utilze esta função juntamente com um TTimer, assim, a cada ciclo do TTimer, os arquivos serão verificados. Existem outra maneira de fazer isso, mas é necessário interceptar as chamadas do sistema operacional (isto é um tipo de programação um pouco avançada e seria necessário entender os prototipos das funções do sistemas, ter em mãos uma api para "hooks"). É mais simples fazer assim, com um TTimer e a função

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então.... mas se eu identificar que o arquivo X foi alterado com o timer, nesse momento a única coisa que consigo fazer para deixa-los iguais, é copiar o mais recente e atualizar o outro. Se eu fizer isso qd o arquivo for mto grande a máquina do usuário vai ficar um pouco lenta.

Por isso quero interceptar as chamadas do sistema operacional e fazer o sincronismo apenas doq foi realmente alterado!!!

Existe outra maneira de fazer isso?

você tem algum tutorial de api ou algum site p/ me indicar? pois tenho q estudar um pokinho....

 

obrigada Raficcha!!!!

valew msm.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como você sincronizar apenas os bytes alterados de um arquivo .. : D

 

A alteração deve ser completa. Se um arquivo de 2Gb por exemplo for alterado, não tem como dizer qual parte do arquivo foi alterada. O que o sistema operacional irá lhe informar será que o arquivo (total) foi alterado.

 

O jeito é sincronizar o arquivo por inteiro. Fazer isso em tempo real, ou seja, sincronizar o arquivo a cada alteração (principalmente em rede) pode ocasionar um ocupação excessiva dos recursos disponiveis (rede fica lenta, pc fica pesado para rodar), principalmente se o arquivo for muito grande.

 

O que eu aconselho a fazer é fazer a verificação de tempos em tempo (por exemplo, a cada 10 minutos) e então, se o arquivo foi alterado, fazer o backup. Assim, caso algum problema ocorra, o máximo de perda (em tempo) seria de 10 minutos.

 

hum.. se precisar de alguma coisa aonde possamos conversar por mais tempo e em tempo real, me manda um email que a gnt combina o msn: tonello.rafinha@gmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a todos!!!

Adicionei você no meu msn... assim q você ficar on...me adiciona..

eu continou fazendo algumas pesquisas para definir uma melhor solução!!!

 

obrigada.

Érica

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.