Irei desenvolver uma aplicação onde cuida da parte de movimentação de arquivos de um diretório para vários outros…
Esta aplicação varrerá o diretório a cada 5 ou 10 segundos para pegar o arquivo e jogar em outro diretório
Esta aplicação não será Web… mas ficará em um servidor de arquivos startado 24 horas…
Gostaria de saber como faço um controle onde posso iniciar e parar na hora desejada…
Você poderia utilizar o agendador de tarefas do windows ou o cron do linux, assim seu aplicativo não fica utilizando recursos do servidor desnecessariamente.
É só uma sugestão…
Weslley
[color=darkblue]Na verdade não é o Sistema Operacional que irá parar ou iniciar esta aplicação… terá uma interface gráfica com dois botoes Iniciar e Parar, e um campo informando os arquivos que estão sendo movimentados. Apenas isto…
A parte de movimentar os arquivos eu já sei como fazer… o problema é fazer como o metodo pode varrer a pasta periodicamente, mesmo que não haja arquivo na mesma…
desde já… Valeu pela sugestão…
Sds…[/color]
Matheus_Leandro_Ferr
Então,
você pode criar uma Thread para este tipo de controle.
Fique em looping até esta thread ser interrompida, verificando se existe o arquivo em determinada pasta.. etc.. etc...
Exemplo:
//// Recebe a instancia da thread arquivo.//Threadio_th_arquivo=newThreadArquiv();//// Inicia a thread.//io_th_arquivo.start();/** * Criando uma thread. */privatefinalThreadThreadArquivo(){return(newThread(newRunnable(){publicvoidrun(){//// Faz um looping até a thread ser interrompida.////// Verifica se existe o arquivo na pasta.////// Faz o processamento necessário quando encontrar o arquivo////// Caso não exista o arquivo.. // Notifica a thread fazendo verificar se existe o arquivo novamente.//}}));}
Né?!
Porém programar com thread é necessário ter um certo conhecimento! mas se você quer fazer de forma correta, tem que utiliza-la.
=)
Weslley
é… ae vc me pegou… =)
Não me aprofundei muito na questão de Threads… a não ser usando o metodo sleep()… hehhehheh…
Mas vou dar uma olhada…
Valeu pela ajuda…
Saudações…
Matheus_Leandro_Ferr
Usar thread e aprender a usa-la, é lindo igual a cerveja.
Weslley
[color=darkblue]mas ae… até ae deu pra entender…
mas e como fazer a interrupção da Thread ??[/color]
Matheus_Leandro_Ferr
Bom,
Para notifica-la, você deve utilizar um bloco syncronized na sua thread
//
// Bloco syncronized para notificar a thread.
//
synchronized (io_th_arquivo)
{
io_th_arquivo.notify();
}
Já para interrompe-la, basta usar io_th_arquivo.interrupt();
Obs: Editei pois tinha falado uma coisa desnecessaria!