Olá a todos,
pessoal, é o seguinte: Estou tentando fazer um programa que precise que encontre uma pasta no sistema operacional, esta pasta eu ja crio anteriormente, mas como não quero amarrar a aplicação de jeito nenhum, pensei em escrever um método que fizesse uma busca pelos nós primários atrás dessa pasta específica, por exemplo:
C:\Teste\NovaPasta
G:\Teste\NovaPasta
F:\Teste\NovaPasta
…
E por ai vai… Seria ótimo desse jeito, o problema é que quando o programa tenta testar a pasta nos drives de CD ou disquete, então aparece aquela tela com 3 botões: “Tentar Novamente”, "Continuar"e “Cancelar”. E lógico que isso é péssimo para a boa execução do programa, eu tentei colocar um teste antes chamando a função que testa se o diretório tem permissão de escrita ( drives de CD não tem essa permissão, só de leitura ) só que não funcionou, coloquei a função que escrevi ( o nome da pasta vem como parâmetro ):
private File retornaDiretorio( String diretorio )
{
File dir = null;
File[] root;
try
{
//Retorna um array de nós primários do SO
root = File.listRoots();
for ( int i = 0; i < root.length; i++ )
{
/*
* Esse teste é para o drive de disquete, pois quando ele tenta acessar o drive de disquete e que não existe nenhum disquete la dentro, então ele pede para: "Continuar", "Tentar Novamente" ou "Cancelar" ( no Windows é assim ). Alem de ser altamente inviável para o usuário que apareça essa mensagem, caso o mesmo clique em "Cancelar" então o programa é abortado, o que não é nem um pouco conveniente!
* Esse teste abaixo elimina isso ( pelo menos no Windows )!
* */
if ( root[ i ].toString().equalsIgnoreCase( "A:\\" ) )
{
continue;
}
//Testa se tem permissão de escrita
if ( root[ i ].canWrite() )
{
dir = new File ( root[ i ] + diretorio );
if ( dir.exists() )
{
return dir;
}
else
{
dir = null;
}
}
}
}
catch ( Exception e )
{
mostraMensagem ( true , "Mensagem Default" , e.toString() );
}
return dir;
}
Estou fazendo algo errado? Se alguêm já tenha passado por isso e tenha uma solução melhor acharia ótimo se postasse aqui!
Desde já agradeço a todos pela atenção![/code]