Bom dia senhores,
Fiz um programa que abre o arquivo por meio de um trecho de seu titulo, neste meu caso, eu digito o numero da nota fiscal e ele abre o arquivo XML desta nota usando o browser.
Para isso eu leio os arquivos e escrevo em um txt para fazer a leitura e identificar se é o arquivo procurado, se for ele abre.
Meu problema é que o arquivo é aberto duas vezes e eu não consigo fazer com que ele não abra a segunda vez. Agradeço a atenção e obrigado pela ajuda, segue o código.
if(evento.getSource() == buscar)
{
String lista[];
lista = new String[10000];
File arquivo = new File("J:");
File[] files = arquivo.listFiles();
int i = 0;
File f = null;
if(files != null)
{
int length = files.length;
String entrada = numnota.getText();
if (entrada.length() < 5 )
{
JOptionPane.showMessageDialog(null,"Digite todo o Número da Nota");
}
else
{
for(i = 0; i < length; ++i)
{
f = files[i];
if (f.getName().contains(entrada))
{
File pdf = new File("J:\\"+f.getName());
try
{
Desktop.getDesktop().open(pdf);
}
catch(Exception ex)
{
ex.printStackTrace();
System.out.println("Arquivo Não Encontrado.");
}
break;
}
if(f.isFile())
{
File empresas = new File("I:\\lista\\lista2.txt"); // instancia a variavel para ser usada no BufferedWriter
try { BufferedReader ler = new BufferedReader( new FileReader("I:\\lista\\lista2.txt")); //Lê o arquivo
String linhas = ler.readLine();
BufferedWriter empresa2 = new BufferedWriter(new FileWriter(empresas));
empresa2.write(f.getName()+System.getProperty ("line.separator"));
empresa2.flush(); // grava o arquivo
empresa2.close(); // fecha o arquivo.
ler.close();
lista[i] = f.getName();
}
catch
(FileNotFoundException ex) //caso não exista o txt exibe erro
{
System.out.println("Erro ao acessar arquivo lista");
}
catch (IOException ex) // se der pau ao abrir exibe erro
{
System.out.println("Erro ao abrir o arquivo");
}
} //fim da gravação dos dados em arquivo
else if(f.isDirectory())
{
System.out.println("Diretorio: " + f.getName());
}
}
}
}
}// fim do buscar