Estou utilizando a classe File para realizar operaçoes de criação de arquivos e diretórios.
Estrou quebrando a cabeça aqui, de como fazer para que se o arquivo existir no diretório ele salve um novo arquivo com outro nome. Ex:
image01, image02, image03… etc…
Abaixo está o método que estou utilizando.
publicvoidadicionaImagem()throwsIOException{//getDiretorio retorna o diretórioFiledir=newFile(getDiretorio());//Concatena o diretório com o nome do arquivo, no caso o getFilename é igual a imagem.jpgFilefile=newFile(dir,getFilename());if(dir.isDirectory()){try{file.createNewFile();}catch(FileNotFoundExceptionex){System.out.println(ex.getMessage());ex.printStackTrace();}}}
Caso tenham um bom material sobre a classe File ou I/O por favor, recomendem.
Tente use o método exists da classe File. Caso lhe retorne true, basta alterar o nome do arquivo que iria criar.
rso1988
Dá pra fazer o seguinte…
Filefolder=newFile(folderPath);// Obtém o diretório dos arquivos.Filefiles[]=folder.listFiles();// Retorna um array com todos os arquivos do diretório.FilelastFile=null;// Itera sobre todos os arquivos do diretório e obtém o mais atual.for(inti=0;i<(files.length-1);i++){if(files.get(i).lastModified()>files.get(i+1).lastModified()){lastFile=files.get(i);}else{lastFile=files.get(i+1);}}// Obtém o nome do último arquivo sem a extensão. Vamos supor que o nome seja "image1456" e o próximo deva ser "image1457".StringlastFileName=lastFile.getName().substring(0,(lastFile.getName().length()-4));lastFileName=lastFileName.replace("image","");// Remove o prefixo "imagem" da String ficando somente com o "1456".intnextVal=Integer.parseInt(lastFileName)+1;// 1456 + 1.StringnewFileName="image"+String.valueOf(nextVal)+".extensao";// image1457.extensao// Daqui pra frente é só salvar o arquivo com o novo nome!
Talvéz precise relizar alguns ajustes nesse código, pois não testei na IDE…
Mas acho que isso resolve seu problema.
jv.nicocelli
nel:
Oi.
Tente use o método exists da classe File. Caso lhe retorne true, basta alterar o nome do arquivo que iria criar.
Na verdade eu já tentei fazer dessa forma, é que o filename está fixo como “imagem” então gostaria que quando o método fosse utilizado, verificaria a ultima imagem salva Ex: imagem101 e criasse na sequência Ex: imagem102…
No meu caso, estou utilizando isso para adicionar as imagens referente a Banners de Filme em um cadastro de filmes. Caso não encontrar outra solução irei gravar o nome da imagem igual ao nome do filme.
jv.nicocelli
rso1988:
Dá pra fazer o seguinte…
Talvéz precise relizar alguns ajustes nesse código, pois não testei na IDE…
Mas acho que isso resolve seu problema.
rso1988,
É exatamente isso que eu precisava, vou realizar as alterações necessárias e em seguida posto o resultado.