| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/10/2009 17:20:44
|
rafaelSaqueli
Debugger
![[Avatar]](/images/avatar/5351d78cb33e8230b3ab264071ed6a33.jpeg)
Membro desde: 11/02/2009 22:02:48
Mensagens: 68
Offline
|
Qual é uma maneira legal e eficiente de escutar um determinado diretório para saber sobre a chegada de um arquivo? Ou seja, quando um arquivo for gravado em determinado local, eu devo fazer alguma coisa com ele. Alguém que saiba, ou precisou fazer algo assim, por favor, postem duas dicas.
Desde já, Obrigado. Att
|
Write once, run anywhere. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/10/2009 17:31:55
|
palmadias
JavaTeenager
Membro desde: 08/07/2008 07:41:08
Mensagens: 192
Localização: São Paulo/SP
Offline
|
Olá.
Talvez não seja a alternativa mais eficiente. Mas qdo precisei fazer isso que que vc percisando, criei um thread que a cada X segundos acessava o diretório.
abraços.
|
http://palmadias.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/10/2009 17:40:44
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
Ola Rafael!
Tem um FileSystem aqui que voce adicionar um listener:
http://commons.apache.org/vfs/
Mas no fundo ele tambe vai criar uma thread para ficar verificando de X em X tempos... (acho)
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/10/2009 17:42:36
|
marcosharbs
Virtual Machine Man
![[Avatar]](/images/avatar/8d497e638156b68197ed9ad0978eaeaf.jpg)
Membro desde: 01/08/2008 11:53:39
Mensagens: 645
Offline
|
bem se vc não sabe quem vai gravar o arquivo poderia fazer oque o amigo palmadias disse
ficar varrendo o diretorio de tempo em tempo
agora se vc sabe que vai gravar se é sua aplicação que vai ta gravando o arquivo
vc poderia implementar o padrao listener para quando gravar disparar um evento e dai
executar uma ação
This message was edited 1 time. Last update was at 16/10/2009 17:43:04
|
======================================================
Blog com foco em desenvolvimento web com java.
http://marcosharbs.wordpress.com/
====================================================== |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/10/2009 17:48:22
|
rafaelSaqueli
Debugger
![[Avatar]](/images/avatar/5351d78cb33e8230b3ab264071ed6a33.jpeg)
Membro desde: 11/02/2009 22:02:48
Mensagens: 68
Offline
|
Ok, Varrer o arquivo é uma forma simples, mas talvez não seja a melhor no meu caso. Esqueci de dizer que o arquivo vem de um servidor, talvez via socket, pode ser que ele demore um bom tempo e a varredura iria consumir processamento em vão. Eu já pensei em fazer com varredura, mas fico com um pé atraz, porque, sabe como é, estou acostumado com J2SE e novo em Java ME, neste caso com tantas restricoes dos dispositivos móveis, ainda não me acostumei e fico sempre preocupado processamento desnecessário. rsrs
att
This message was edited 2 times. Last update was at 16/10/2009 17:55:20
|
Write once, run anywhere. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/10/2009 17:56:45
|
palmadias
JavaTeenager
Membro desde: 08/07/2008 07:41:08
Mensagens: 192
Localização: São Paulo/SP
Offline
|
rafaelSaqueli wrote:Ok, Varrer o arquivo é uma forma simples, mas talvez não seja a melhor no meu caso. Esqueci de dizer que o arquivo vem de um servidor, talvez via socket, pode ser que ele demore um bom tempo e a varredura iria consumir processamento em vão.
O consumo de processamento na busca do arquivo é muito pequeno. Não imagino que ira impactar. Mas como não conheço o seu contexto, posso tá falando besteira.
abraços.
|
http://palmadias.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/10/2009 17:57:13
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Fora o que o palmadias sugeriu, seria interessante que a aplicação que está criando o arquivo nesse tal diretório, SE POSSÍVEL, faça o seguinte:
a) Crie o tal arquivo com um nome um pouco diferente, enquanto ela está gravando o arquivo;
b) Finalmente, renomeie o arquivo para o nome correto.
Por exemplo, se o tal diretório recebe arquivos .dat, você pode solicitar à tal aplicação criar o tal arquivo com o nome .dat.tmp e quando ela acabar de transferir os bytes, renomear o arquivo .dat.tmp para .dat. Aí você só processa os arquivos .dat, não os arquivos .dat.tmp.
É que se você simplesmente deixar a tal aplicação já criar o arquivo com o nome definitivo enquanto ela está transferindo os bytes, pode ser que você acabe lendo um arquivo incompleto, o que é indesejável.
|
|
|
 |
|
|