Escutar chegada de arquivo!  XML
Índice dos Fóruns » Google Android e Java Micro Edition (ME)
Autor Mensagem
rafaelSaqueli
Debugger
[Avatar]

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.
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/
[WWW] [MSN]
Paulo Silveira
Administrador
[Avatar]

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


[Email] [WWW]
marcosharbs
Virtual Machine Man
[Avatar]

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/

======================================================
rafaelSaqueli
Debugger
[Avatar]

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.
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/
[WWW] [MSN]
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.
 
Índice dos Fóruns » Google Android e Java Micro Edition (ME)
Ir para:   
Powered by JForum 2.1.8 © JForum Team