Pergunta

Eu tenho um botão que eu quero desativar enquanto não há um número específico de arquivos em um diretório. Existe algum tipo de ouvinte que notifica mim no momento um arquivo é criado ou excluído em um diretório?

Foi útil?

Solução

Não há suporte nativo atual em Java para eventos e monitoramento do sistema de arquivos. JNotify é uma biblioteca útil para fazer isso. Você deve configurá-lo para monitorar o diretório para modificações, e então determinar-se o que foi adicionado / removido.

Java 7 terá suporte a eventos do sistema de arquivos incorporada .

Outras dicas

Uma coisa que você pode querer considerar - se você estiver ouvindo para eventos de criação, então você vai querer certificar-se de que o arquivo é completamente escrito antes de começar a lê-lo. Eu não estou certo que tipo de suporte Java 7 vai oferecer para este problema.

Eu tenho implementado mecanismos como este no passado e este problema específico necessário tratamento especial. Se você está controlando tanto o leitor de arquivos e escritor, em seguida, você pode contornar isso com convenções de nomenclatura, etc. (os nomes escritor do xxx.prt arquivo e renomeia o arquivo quando ele é feito sendo escrito). Desde que eu não tinha controle sobre o escritor que eu tinha para adicionar outro mecanismo de pesquisa para verificar o tamanho do arquivo em um intervalo para assegurar que cada novo arquivo foi realmente pronto para ser lido. Não é uma solução perfeita, mas foi suficiente para o meu caso.

Os meus dois centavos ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top