# Eindeutige Dateinamen generieren



## NicetoHave (19. Jul 2007)

Hallo Zusammen! 

gibt es in java eine Möglichkeit eindeutige Dateinamen zu generieren? 

Mir reicht 
	
	
	
	





```
System.currentTimeMillis()
```
 bzw 
	
	
	
	





```
System.nanoTime();
```
nicht aus. 



Ich muss nämlich N-Dateien hintereinander in einem Ordner abspeichern. Dabei muss die Bezeichnung immer eindeutig sein.

Ich kann das auch mit einem 
	
	
	
	





```
Thread.sleep(100);
```
 lösen, jedoch ist das eindeutig zu langsam.


Vielen dank an euch!


----------



## The_S (19. Jul 2007)

Warum zählst du nicht einfach mit die wievielte Datei du schreibst und verwendest diese Position als Namen ???:L


----------



## NicetoHave (19. Jul 2007)

Stimmt, ich kann ja eine Mischung von Zähler und Uhrzeit machen und erhalte dann immer eine eindeutige Kennung.


Vielen dank!


----------



## The_S (19. Jul 2007)

Du kannst auch einfach nur einen Zähler verwenden und hast trotzdem eine eindeutige id ...


----------



## SlaterB (19. Jul 2007)

nicht bei mehreren Programmstarts 
es sei denn die letzte Nummer wird an einem festen Platz abgelegt
(info.txt)


----------



## NicetoHave (19. Jul 2007)

auch bei mehrere Starts  

denn es ist sehr unwahrscheinlich das du die selbe CurrentTime in Millisekunden triffst...


----------



## SlaterB (19. Jul 2007)

"Du kannst auch einfach nur einen Zähler verwenden" ist bei mehreren Starts nicht sehr hilfreich meinte ich,
zusätzlich die Systemzeit ist dagegen schon recht brauchbar, da stimme ich dir zu


----------



## The_S (19. Jul 2007)

SlaterB hat gesagt.:
			
		

> "Du kannst auch einfach nur einen Zähler verwenden" ist bei mehreren Starts nicht sehr hilfreich meinte ich,
> zusätzlich die Systemzeit ist dagegen schon recht brauchbar, da stimme ich dir zu



Warum? Verzeichnis auflisten lassen, sortieren, letzten Dateinamen nehmen und ab dort weiter Dateinamen vergeben ...


----------



## SlaterB (19. Jul 2007)

wie gesagt, letzte Nummer ablegen hilft auch,
dies ist natürlich eine besonders schlaue Form 
(falls die Dateien nicht verlagert/ archiviert werden  )


----------



## Marco13 (19. Jul 2007)

Da gibbet auch extra ne Funktion dafür
http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#createTempFile(java.lang.String,%20java.lang.String)


----------



## The_S (19. Jul 2007)

Ich glaube nicht, dass er eine temporäre Datei benötigt  .


----------



## madboy (19. Jul 2007)

Alternativ könntest du auch eine Zufallszahl bzw. Zufallsbuchstabenfolge generieren. Dann schauen, ob eine Datei mit dem Namen schon existiert. Falls sie schon existiert, das ganze nochmal.

Allerdings finde ich die Idee mit dem Zähler besser  :wink:


----------



## Marco13 (19. Jul 2007)

createTempFile generiert eine eindeutige Datei, die es vorher noch nicht gab und nachher nichtmehr geben wird. Ob man sie löscht (und sie damit WIRKLICH nur "temporär" ist) bleibt einem selbst überlassen. War ja nur ein Tipp.


----------



## The_S (19. Jul 2007)

Die Datei wird aber im Temp-Verzeichnis generiert => kann vorkommen, dass die Datei unabsichtlich gelöscht wird.


----------



## SlaterB (19. Jul 2007)

menno, dann kopiert man sich einfach den Dateinamen für eine eigene Datei,
dieses Thema ist deutlich zu breit getreten


----------



## jörni (19. Jul 2007)

stimmt nicht wirklich, man kann auch ein eigenes Verzeichnis angeben, in dem die Datei erstellt werden soll.

createTempFile


----------



## merlin2 (19. Jul 2007)

SlaterB hat gesagt.:
			
		

> dieses Thema ist deutlich zu breit getreten


Schreib kürzere Zeilen, dann trittst du es länger! :wink:


----------



## HoaX (19. Jul 2007)

edit: wurde schon gesagt, warum sind die seitenzahlen unten so klein? grrr


----------

