| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2006 18:48:09
|
afamorim
JavaEvangelist
![[Avatar]](/images/avatar/0d7f9017fbda691900187b22404b8a1f.png)
Membro desde: 15/07/2005 09:19:04
Mensagens: 453
Localização: Salvador - Ba
Offline
|
Galera o negocio é o seguinte, preciso fazer uma aplicação java que fique escutando na maquina do cliente quando ele abre e fecha determinados arquivos em determinados diretorios, tem como monitorar isso com java, ou vou ter que descer o nivel e ir para C ou algo parecido?, colocar como serviço eu ja sei, minha duvida mesmo é como saber que um arquivo foi aberto e quando o mesmo foi fechado.
qualquer luz ta valendo...
grato pela ajuda
|
se vc não quer ficar alegre, problema seu a vida segue!
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2006 19:30:04
|
agodinhost
Virtual Machine Man
![[Avatar]](/images/avatar/b8ffa41d4e492f0fad2f13e29e1762eb.jpg)
Membro desde: 28/03/2006 21:19:16
Mensagens: 590
Localização: RJ, Tijuca
Offline
|
puts, tb quero saber.
Sei que se vc montar um esquema de observer/listenner vc consegue resolver isso mas vc vai ter que de tempos em tempos ficar pegando info das arquivos no so (desacobselhável, óbvio)
|
"The difference between theory and practice is that, in theory, there is no difference between theory and practice". |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2006 23:15:23
|
afamorim
JavaEvangelist
![[Avatar]](/images/avatar/0d7f9017fbda691900187b22404b8a1f.png)
Membro desde: 15/07/2005 09:19:04
Mensagens: 453
Localização: Salvador - Ba
Offline
|
Eu posso fazer isso testanto os tamanhos do arquivo, se eles foram modificados,, eu posso manter um arq xml que me diga qual era o tamanho
mais nao sei como fazer para saber se eles foram abertos e apenas para observação, se tivesse algu modo de saber se eles estão locados ou algo assim....
|
se vc não quer ficar alegre, problema seu a vida segue!
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2006 23:31:55
|
agodinhost
Virtual Machine Man
![[Avatar]](/images/avatar/b8ffa41d4e492f0fad2f13e29e1762eb.jpg)
Membro desde: 28/03/2006 21:19:16
Mensagens: 590
Localização: RJ, Tijuca
Offline
|
afamorim wrote:Eu posso fazer isso testanto os tamanhos do arquivo, se eles foram modificados,, eu posso manter um arq xml que me diga qual era o tamanho
o problema aí é que vc (java) vai ter que ficar, de tempos em tempos, pedindo pro so informações desses arquivos/pastas.
Imagina o seguinte:
Hoje vc diz quê de dez em 10 minutos basta pra sua "monitoração", mas amanhão tu percebe que tem de ser de 1 em 1 minuto, e depois de 10 em 10 segundos (daí tu senta, chora e joga o código fora).
Não seria melhor vc fazer o so "notificar" qdo algo for alterado? Vc não vai precisar monitorar nada no java. Vai criar apenas um listenner (ouvinte) que será executado apenas qdo algum arquivo for modificado.
Agora vamos pro prático: vc pode escrever um serviço que se encarregue de monitorar essas pastas/arquivos (NT, C ou C++). Teria de ser um serviço pq assim vc teria como interceptar algum evento do so pra fazer essa brincadeira - qq outra forma, não tenho certeza, te forçará a escrever um loop e ficar perguntando quem foi alterado (e é isso que vc não quer certo?).
Acho que isso é complicado (não sei teu nível de java), mas caso vc tenha mais coragem do que vida social vamos tentar ver:
Dá uma olhado no sourceforge que deve ter os fontes de algum tipo de serviço semelhante lá (é a primeira parte, só te interessa o esquele do serviço).
Windows API vai ajudar tb.
Numa segunda parte vc poderia estudar JNI (Java Native Interface) pra saber como chamar c à partir do java e vice-versa.
Precisei de algo parecido em um projeto no qual trabalhei mas graças a deus o bichinho foi descontinuado (pro bem do resto da minha sanidade mental).
EDIT: vc pode optar por monitorar a pasta/arquivo (solução mais barata e rápida), mas fique ciente que se o número de pastas e arquivos forem muito grandes isso pode não funcionar com um bom tempo de resposta.
|
"The difference between theory and practice is that, in theory, there is no difference between theory and practice". |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 16:01:41
|
klarq
JavaChild
![[Avatar]](/images/avatar/d1359f9934ee5a75ed441ffce412a0a1.jpg)
Membro desde: 14/02/2005 11:27:07
Mensagens: 124
Offline
|
Já pensaram e sockets?!
Quando o usuário abrir o arquivo e fizer algo você envia um pacote...
Quanto ao listener deve ter algo no Windows API...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 16:09:15
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
a) Se você tivesse feito o tal serviço em .NET você poderia usar System.IO.FileSystemWatcher. (Você não consegue saber se um arquivo foi fechado, apenas se ele foi criado, alterado, renomeado ou deletado).
b) O JBoss normalmente fica listando o diretório server/default/deploy para ver se há algo diferente que deva ser "deployed". Ele normalmente só considera que um arquivo está completamente copiado quando ele mesmo consegue abri-lo. (Procure no fonte do JBoss como é que ele faz esse recurso de autodeploy)
É que enquanto um arquivo está sendo copiado, normalmente não é possível abrir o arquivo simultaneamente com o outro programa.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 17:38:49
|
afamorim
JavaEvangelist
![[Avatar]](/images/avatar/0d7f9017fbda691900187b22404b8a1f.png)
Membro desde: 15/07/2005 09:19:04
Mensagens: 453
Localização: Salvador - Ba
Offline
|
a questão de que foi modificado é simples..
eu queria mesmo saber como fazer para que o arquivo foi aberto e depois fechado sem ser modificado...
|
se vc não quer ficar alegre, problema seu a vida segue!
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 18:12:29
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Então, veja o fonte do JBoss. Deve ser uma classezinha boba no meio daqueles fontes todos.
O mais provável é que pegue a data de modificação do arquivo e fique monitorando isso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 18:24:47
|
Fabricio Cozer Martins
GUJ Ranger
![[Avatar]](/images/avatar/2ecd2bd94734e5dd392d8678bc64cdab.jpg)
Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline
|
lembrando que o tamanho do arquivo ser igual ou diferente, não quer dizer que ele foi alterado ou não, na pior das hipóteses, e pela lei de murphy tudo pode acontecer.
Interessante essa dúvida, se souber de algo posto aqui
|
Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 18:48:07
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
O eclipse implementa monitoração de arquivos e diretórios. Você pode usar os fontes dele sem problema.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 19:34:36
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Só lembrando que a granularidade das datas de modificação no Windows dependem do filesystem.
Se não me engano, no NTFS é possível verificar a data de modificação com precisão de décimos de segundos.
No FAT, é coisa de 2 em 2 segundos. Mas isso precisa ser verificado (em algum lugar do MSDN deve estar escrito isso.)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2006 12:21:04
|
takeshi10
Java Ninja
Membro desde: 08/08/2004 23:05:25
Mensagens: 254
Localização: Brasil
Offline
|
uma vez fiz um sistema em python que lia os arquivos e gerava "hashes" com o md5 para saber se foram alterados... implementar uma versao em JAVA para tal deve ser facil...
mas para arquivos muito grandes (ou para diretorios com muitos arquivos) era um tanto demorado...
|
takeshi |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2006 14:50:26
|
afonsolima
Smalltalk
![[Avatar]](/images/avatar/b433da1b32b5ca96c0ba7fcb9edba97d.png)
Membro desde: 15/06/2006 14:16:12
Mensagens: 1
Offline
|
Neste topico voces falam que eh facil monitorar uma pasta ou arquivo. E isso é justamente o que estou precisando.
Ou seja: preciso monitorar uma pasta de modo que um evento seja disparado quando algum arquivo for colocado nela.
Poderiam me fornecer algum exemplo?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2006 15:19:24
|
Roger--
JavaGuru
Membro desde: 16/05/2005 14:31:36
Mensagens: 205
Localização: São Bernardo do Campo/SP
Offline
|
Sei que faz tempo o primeiro post ... mas "trombei" com estes arquivos no Google e resolvi compartilhar ....
Pagina inicio:
http://www2.hawaii.edu/~qzhang/FileSystemWatcher.html
Fontes:
http://www2.hawaii.edu/~qzhang/FileSystemWatcher/index.html
Espero que ajudem.
PS: Não testei nada ... mas acredito que já seja uma luz
[]s
Roger Leite
|
Você sofre com Waterfall !?! Eu também. Veja dicas aqui 1up4developers |
|
|
 |
|
|