Nome de arquivo unico

2 respostas
rogeriosantos77

Srs, tenho uma classe java que roda um processo quando invocado analise um arquivo informado e salva um arquivo texto com um relatorio da analise desse arquivo
O Problema é que existe uma pasat unica no sistema onde esse relatorio e salvo e existem varios usuarios invocando essa classe de analise.
Eu preciso criar um código que gere os arquivos de relatorio garantindo um nome unico para que não coincida de duas pessoas em locais diferentes analisarem um arquivo e o sistema salvar um arquivo de relatorio com o mesmo nome.
Alguem pode sugerir uma forma de criar esses arquivos com 100% de change de nunca terem nomes iguais ?

2 Respostas

Marlon_Meneses

cara…
eu jah tive problema semelhante!
no meu caso eu resolvi criando uma pasta com o login da pessoa e lah dentro criei o arquivo com o nome concatenado com a data e hora do sistema assim:
marlon
L arquivo_01/08/09-08:47:21.txt

no meu caso funcionou

xandevieira

acho q a ideia eh essa mesmo q o Marlon falou, só lembrando que diretorios e arquivos não podem ter “barra” no nome.
resolvi algo semelhante assim:
o codigo esta numa classe DateUtil

private static final Locale BR = new Locale("pt", "BR");
public static final String TIMEZONE_BR = "America/Sao_Paulo";

	public static Calendar getDataAtual() {
		Calendar date = new GregorianCalendar(
				TimeZone.getTimeZone(TIMEZONE_BR), BR);
		date.setTimeInMillis(System.currentTimeMillis());
		return date;
	}

	public static SimpleDateFormat getSimpleDateFormatZoneForArq() {
		SimpleDateFormat dateFormat = new SimpleDateFormat(
				"HH-mms-s - dd-MM-yyyy");
		dateFormat.setTimeZone(TimeZone.getTimeZone(TIMEZONE_BR));
		return dateFormat;
	}

	public static String getDataAtualForArquivo() {
		return getSimpleDateFormatZoneForArq().format(getDataAtual().getTime());
	}

uso

PrintWriter pw = new PrintWriter(DateUtil.getDataAtualForArquivo()+".txt");
Criado 1 de julho de 2009
Ultima resposta 1 de jul. de 2009
Respostas 2
Participantes 3