Estou a fazer uma brincadeirazinha que é, criar um Jlist
associada a uma pasta que vai ser a “main” pasta e dentro dessa pasta tenho outras pastas que vão ter os tais .txt dentro, e eu consegui fazer com que eu se apagasse um da lista os .txt apagavam e a pasta não, é o que eu queria, mas, se eu tentar apagar por exemplo ter elementos dessa lista já não dá, pois apaga só o primeiro, se alguem me conseguir ajudar, desde já agradeço 
class ClearListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Object selected = list.getSelectedValue();
try {
removeIndexInterval();
deleteFiles(selected);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
public void removeIndexInterval() {
DefaultListModel dlm = (DefaultListModel) this.list.getModel();
if (this.list.getSelectedIndices().length > 0) {
int[] tmp = this.list.getSelectedIndices();
int[] selectedIndices = this.list.getSelectedIndices();
for (int i = tmp.length - 1; i >= 0; i--) {
selectedIndices = this.list.getSelectedIndices();
dlm.removeElementAt(selectedIndices[i]);
} // end-for
} // end-i
}
public void deleteFiles(Object objects) throws IOException {
File[] files = ((File) objects).listFiles();
for (File file : files) {
if (file.isFile()) {
String fileName = file.getName();
boolean del = file.delete();
System.out.println(fileName + " : Apago ? " + del);
} else if (file.isDirectory()) {
deleteFiles(file);
}
}
}
Acho que é só isto o necessário para a ajuda
Você quer que delete todos os arquivos sem deletar as pastas?
segue o código usando recursividade, se for pasta ele chama o mesmo método para aquela pasta, se for arquivo ele deleta… se você quiser testar a extensão só é colocar uma condição antes da remoção… se quiser deletar inclusive as pastas vc comenta o else
e deixa a remoção para tudo… acredito que era isso que você queria 
Obs.: no método só é passar o diretório.
public static void main(String[] args) {
apagaArquivos("C:\\Temp\\main");
}
public static void apagaArquivos(String path) {
File pasta = new File(path);
File[] arquivos = pasta.listFiles();
for (File arquivo : arquivos) {
if (arquivo.isDirectory()) {
apagaArquivos(arquivo.getAbsolutePath());
} else{
//System.out.println(arquivo.getName());
arquivo.delete();
}
}
}
Isso foi praticamente o que eu fiz, quando meto o que me deste faz o mesmo.
Tipo na Jlist eu tenho uma lista de 3 elementos, que são as pastas que estão no diretorio que escolhi…
Se eu apagar um elemento a um a pasta fica e os ficheiros apagam,
agora se eu selecionar todos e tentar apagar, apenas o primeiro é que
apaga, pois eu não pretendo que quando eu ligue o programa tudo apague
logo, eu pretendo que apague aqueles que eu selecionar, percebeste assim
mais ou menos?
Eu acho que Lincoln já te respondeu. Agora o que você precisa é somente chamar os arquivos que deseja apagar e guarde o caminho em uma String[]
. Depois faça um while
ou o que quiser e apague-os.
Não me lembro bem mas acho que você pode chamar arquivos assim:
File g;
JFileChooser arq= new JFileChooser();
if(arq.showOpenDialog(arq)== JFileChooser.APPROVE_OPTION){
g = arq.getSelectedFile();
Não, pois o que o Lincoln fez, foi com que a pasta apagasse todos os ficheiros e eu quero que na Jlist quando aparecesse as pastas que tinha no diretorio, e as que eu quissese apagar elas apagavam, ou seja era eu a escolher qual pasta seria apagada e não fazer com que todos os ficheiros, selecionados ou não apaguem
Então foi o que te passei acima vocÊ tentou:
String[]
para receber os arquivos, depois percorre ele apagando.
File g;
JFileChooser arq= new JFileChooser();
if(arq.showOpenDialog(arq)== JFileChooser.APPROVE_OPTION){
g = arq.getSelectedFile();
Okeiii, pronto então, isso que mandaste vai abrir uma janela para escolher os ficheiros que quero apagar, e não era nada disso que eu prentedia 
Vou tentar explicar o melhor que puder:
Inicio o programa e já abre uma janela do programa com as pastas no diretorio que eu quero, na Jlist já lá tem as pastas que eu prentendo apagar com os ficheiros contidos, até aí eu já consegui fazer, a apagar o que tem dentro também, o grande problema é que quando eu seleciono todas as pastas, na Jlist usando “MULTIPLE_INTERVAL_SELECTION” apenas os ficheiros da primeira pasta na lista é que apagam os outros mesmo selecionados não apagam, eu tenho uma certa desconfinça no que poderá ser, pois ao chamar o que seleciono utilizo list.getSelectedValue()
e na descrição desse comando diz que apenas seleciona o primeiro da lista, para selecionar todos tenho de utilizar o list.getSelectionIndices()
e isso dá-me muitos erros por causa dos casts, acho que expliquei tudo direitinho
Obrigado a todos pelo vosso tempo já resolvi o problema 