Fazer upload de arquivo sem sobrescrever

5 respostas
A

Olá pessoal, estou com um pequeno problema, preciso fazer o upload de arquivos. Isso eu já fiz mas eu preciso fazer isso sem que ele sobrescreva os arquivos que tem (isso acontece quando tem arquivos com o mesmo logicamente), como posso resolver isso? eu queria colocar o nome de arquivo [1] como acontece normalmente no windows por exemplo

alguém tem alguma dica?

5 Respostas

A

ninguém tem alguma sugestao para eu evitar arquivo com nomes iguais quando eu for escrever em disco?

E

Ora, basta você checar se o arquivo existe. Se existir, crie um com outro nome.

A

mas como que eu posso colocar um [1] no arquivo?
tipo…

arquivo.jpeg
arquivo[1].jpeg

não estou conseguindo fazer isso…

E

Procure um ponto no final do nome com lastIndexOf. Achando a posição, ponha o “[1]”, “[2]” ou sei lá o que você quiser pôr. É só trabalhoso, não precisa pensar nada.

A

eu fiz aqui de uma manera mas não ficou tãããoooo "bonito" pois ele renomeia assim

imagem.jpeg
imagem[1].jpeg
imagem[1][2].jpeg
imagem[1][2][3].jpeg

e assim sucessivamente... mas creio que nao da pra mudar muito, que assim seria melhor pois se o usuario mudar manualmente pode causar estragos se eu fizer verificação de [ ] Bom enfim meu codigo esta aqui por favor se puder melhorar a forma, eu agradeço:
public String fileExists(File xml, int num)
	{	 		
		File x = xml;
		String name = "";
		while (x.exists())
		{  	
			name = x.getName();					
			name = name.substring(0, name.length() - 4);										
			x = new File(path.substring(0, path.length() - (name.length()+5)) + "\\" + name + "[" + (++num) + "].xml");		
		//	System.out.println(path.substring(0, path.length() - (name.length()+5)) + "\\" + name + "[" + (num) + "].xml");
			path = path.substring(0, path.length() - (name.length()+5)) + "\\" + name + "[" + (num) + "].xml";
        }	
		
		return path;
	}
Criado 10 de outubro de 2010
Ultima resposta 11 de out. de 2010
Respostas 5
Participantes 2