Criar nova pasta na hora de salvar jFileChooser

Olá pessoal, sou novo por aqui. Estou com uma dúvida, estou criando um JFrame com jFileChooser e gostaria que na hora de salvar o arquivo copiado ele automaticamente criasse uma pasta para salvar o arquivo direto nessa pasta definindo também o nome da pasta e caso a pasta já exista com o nome definido ele que salve direto na pasta. Tem como fazer isso? Desde já agradeço a atenção.

Parte do código onde salvo o arquivo:

Files.copy(
Paths.get(JtextFieldLocal.getText()),
Paths.get(“C:/Nova pasta”+ jComboBox1.getSelectedItem()+"."+ ext[a - 1]));
JOptionPane.showMessageDialog(null, “Arquivo Salvo!”);

Não está completo mas para verificar se a pasta ja existe você pode usar este procedimento:

File diretorio = new File (“c:\teste”);

    if(diretorio.exists())
       //Aqui realizaria a cópia do arquivo
        System.out.println("Diretorio já existe no sistema");

    else
        //Aqui você criaria a pasta e realizaria a cópia do arquivo.
       diretorio.mkdirs();
}

–> Você terá que usar a biblioteca: import java.io.*;

Obrigado amigo!
Consegui criar. O problema agora que estou enfrentando é criar uma maneira que quando for
salvar o arquivo ele verifique se o arquivo já existe, caso já exista acrescente 1 no final e assim
sucessivamente. Estou usando paths para copiar o arquivo.
Codigo esta assim:

try {
File diretorio = new File(“C:/Users/maciel.schmitz/Desktop/000” + textocontrato.getText() + “" + textocpf.getText());
if (!diretorio.exists()) {
diretorio.mkdir();
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, “Erro ao criar o diretorio”);
System.out.println(ex);
}
Files.copy(
Paths.get(JtextFieldLocal.getText()),
Paths.get(“C:/Users/maciel.schmitz/Desktop/000” + textocontrato.getText() + "
” + textocpf.getText() + “\” + jComboBox1.getSelectedItem() + “.” + ext[a - 1]));

//Para você verificar se o arquivo já existe faça este modo:

File arquivo = new File(“C:\diretorio\SeuArquivo.txt”);
if (arquivo.exists()) {

}

//Como você disse que o arquivo vai receber uma numeração sequencial.
Você terá que criar um loop que vai verificar arquivo por arquivo e pegando o seu valor numérico, sendo o o nome do arquivo é uma string então não é um número, terá que converter para inteiro antes de fazer a verificação na variável.

//Você terá que ter duas variáveis para realizar a comparação:
//Você terá que copiar apartir de uma determinado posição (depois do nome do arquivo) o valor numérico e jogar em uma variável.

variavélVMaximo = 1;

//Depois a variávelVTeste vai receber o valor do segundo arquivo.

Agora você vai fazer a comparação se o valor da variavelVMaximo é maior que a variávelValoTeste, caso não seja o a variavelVMaximo recebe o valor da variavelValorTeste e assim sucessivamente até o loop terminar, quando sair do loop você saberá qual é o maior valor na variavelVMaximo, ai acrescenta +1 a essa variável e terá a numeração desejada para o novo arquivo.

Aqui tem um exemplo mas não posso ajudar muito pois estou aprendendo.

Exemplo_1:
http://www.arquivodecodigos.net/dicas/java-como-usar-o-metodo-charat-da-classe-string-para-obter-o-caractere-em-uma-determinada-posicao-de-uma-string-3414.html

Exemplo_2:

Na verdade eu gostaria de fazer com Files.exists() mas não esta dando certo. Estava tentando criar com if e else mas não esta dando. Gostaria que acrescentasse +1 no nome do arquivo quando salvasse e tivesse arquivo repetido.

Se alguém mais puder me ajudar agradeço.

Você também pode gravar o nome do arquivo no bd e quando for salvar o nome do arquivo pega esse nome acrescenta mais 1, este outro nome você salva no bd assim sucessivamente, mas acho isso meio arriscado para seguinte situação:

  • Já foi criado um arquivo com este nome (fora do sistema).
  • Renomiar um arquivo com este nome (fora do sistema).

Você tem que ter certeza que será impossível criar um arquivo fora do sistema.

Fazer uma verificação “loop” é mais seguro:

Aqui tem outros exemplos…

Posta o código, para eu ver.