Ola pessoal, dei uma procurada aqui no forum e naum axei o que eu queria. Dei uma buscada no google e axei algo que poderia dar certo se eu fizesse uma modificações. Tenho uma lista na frame onde adiciono valores(Estes valores são os os nomes das classes.java). Então quando eu pressionar o botão remove precisaria que exclui-se a classe no package explorer do eclipse. Tentei criar algo com o java.io , mas naum deu muito certo.
ModelListanovoTeste=newModelLista(Banco,Driver,URL,Usuario,Senha,Schema,Cache,Read);// tentei pegar a lista. O Banco representa o que foi digitado na tela, peguei a classe pelo nome Filearq=newFile(novoTeste.getBanco().getClass().getName());Stringpath=arq.getAbsolutePath();if(arq.exists()){if(arq.delete()){System.out.println("Arquivo deletado "+path);}}
Você chegou a depurar para ver se o arquivo existe? Talvez o nome do arquivo esteja sendo montado errado.
Primeiro é necessário que você quebre a cabeça e depure bem o código antes de postar aqui. Outra coisa, se der diferente de arq.exists() não acontece nada? Nenhuma mensagem? Talvez isso já mostrasse o que está acontecendo.
Por último, as vezes o arq.delete() pode não funcionar, bastando que você abra um stream pro arquivo e depois feche, para que ocorra um desbloqueio no sistema operacional, e então podendo ser chamado o delete novamente, geralmente funcionando. Tive este problema com Java 1.4 e 1.5 em Unix algum tempo atrás.
[]sssss
F
Focao
pode ser q vc tbm não tenha essa permissão na pasta para deletar…
R
raphaelFree
Eu to quebrando a cabeça por isso eu postei aki, por que essa foi minha ultima e fracassada tentativa. Ele me emite uma mensagem dizendo que foi excluida o arquivo, no entanto o arquivo continua aparecendo no package explorer mesmo depois de eu atualizar o projeto. Mas quanto a esse stream eu vou correr atraz para ver o que eu acho sobre isso.
F
Focao
mas peraí…
vc está deletando o ,java né…
pq se deletar o .class no re-building vai criar again…
F
Focao
mas peraí…
vc está deletando o ,java né…
pq se deletar o .class no re-building vai criar again…
R
raphaelFree
??? to tentando deletar um classe.java que contem o mesmo nome de um elemento que esta dentro de um array.
Ou seja , tenho minha list na tela, certo? ela tem o nome de forumGUJ, desta forma minha classe.java tambem tem esse nome de forum.GUJ, então quando remover da list este nome, tenho que apagar o .java. Até agora só consigo remover o que esta na list, porém tentei criar esse metodo acima para remover a classe tambem, mas naum deu certo.
F
Focao
pode ser que que suas .class não estejam no mesmo diretório e sim em WebContent/WEB-INF/classes ou algo parecido
isso é setado no projeto…
R
raphaelFree
Focão… procurando pelo o que o japa falou ai em cima , eu achei outra coisa e eu fiz assim, e consegui apagar quase todos os elementos. Quase, isso pq a ultima classe que esta na lista naum apaga, pq?
// passando a localizacao do arquivo. Pois todos as classes.java ficarao neste diretorioFilearq=newFile("C:/FDDK/runtime-EclipseApplication/Extrator/src/"+FreeDecisionWizardPage2.getCliente()+"/"+FreeDecisionWizardPage2.getFabricante()+"/"+FreeDecisionWizardPage2.getProduto()+'/'+"shared/"+"dbs/"+FreeDecisionWizardPage3.banco+".java");if(arq.exists())arq.delete();
Não caiu, pior que ficou na mesma, se eu criar 3 classes é excluida apenas 2.
F
Focao
kd a lista FreeDecisionWizardPage2?
manda aí…
essa lista tem o cara ?
tem algum for? while ? interator ?
R
raphaelFree
FreeDecisionwizardpage2 naum é uma lista e sim uma classe que contem atributos que formam o caminho do diretório. To postando o método inteiro o que exclui da lista e o que exclui .java.
publicvoidhandleEvent(Eventevent){// se tentar remover da lista enquanto estiver vazia mostra mensagemif(lista.getItemCount()==0){JOptionPane.showMessageDialog(null,"Selecione uma conexão para remover","Atenção",JOptionPane.WARNING_MESSAGE);txtBanco.setFocus();System.out.println("Selecione uma Conexão para Remover");}else{//pegando o item da lista e removendo dos campos txtintitemSelect=lista.getSelectionIndex();ModelListateste=array.get(itemSelect);StringBanco=txtBanco.getText();StringDriver=comboDriver.getText();StringURL=comboURL.getText();StringUsuario=txtUsuario.getText();StringSenha=txtSenha.getText();StringSchema=txtSchema.getText();StringCache=txtCache.getText();StringRead=comboRead.getText();// chamando metodoModelListanovoTeste=newModelLista(Banco,Driver,URL,Usuario,Senha,Schema,Cache,Read);// removendo item da listalista.remove(novoTeste.getBanco());array.remove(itemSelect);// passando a localizacao do arquivo para poder exclui-loFilearq=newFile("C:/FDDK/runtime-EclipseApplication/Extrator/src/"+FreeDecisionWizardPage2.getCliente()+"/"+FreeDecisionWizardPage2.getFabricante()+"/"+FreeDecisionWizardPage2.getProduto()+'/'+"shared/"+"dbs/"+FreeDecisionWizardPage3.banco+".java");//if (arq.exists())//arq.delete();if(arq.canRead()){arq.delete();}else{arq.deleteOnExit();}
F
Focao
pq tem 2 ModelLista ?
vc não poderia deletar o .java depois remover o cara da lista ?
R
raphaelFree
Pelo o que é proposto eu preciso remover o “.java” juntamente com o elemento da lista.
R
raphaelFree
Será que ninguém tem uma sugestão, ja que o problema continua :oops:
R
raphaelFree
Ja que ninguem respondeu, eu mesmo vou responder.
// chamando metodoModelListanovoTeste=newModelLista(Banco,Driver,URL,Usuario,Senha,Schema,Cache,Read);// removendo item da listalista.remove(novoTeste.getBanco());array.remove(itemSelect);//pegando o nome da classe setBanco(txtBanco.getText());// passando a localizacao do arquivo.Filearq=newFile("C:/FDDK/runtime-EclipseApplication/Extrator/src/"+FreeDecisionWizardPage2.getCliente()+"/"+FreeDecisionWizardPage2.getFabricante()+"/"+FreeDecisionWizardPage2.getProduto()+'/'+"shared/"+"dbs/"+FreeDecisionWizardPage3.banco+".java");//deletando do arquivoif(arq.canRead()){arq.delete();}else{arq.deleteOnExit();}