Dateinamen erzeugen der noch nicht im Verzeichniss vorhanden ist
-
Hallo,
irgendwo hab ich mal von einer Funktion gehört die einen Namen für eine Datei ermittelt die es im Verzeichniss noch nicht gibt, so daß man beim Erzeugen der Datei keine schon bestehende überschreibt. Ich wiss jetzt nicht mehr genau ob ich das irgendwo bei einer Winapi oder ANSI-c Anwendung gesehen habe. Wenn ich also im falschen Forum gepostet habe tut's mir leid und ich bitte darum das Post zu verschieben. Kennt jemadan eine solche Funktion und kann mir weiterhelfen?
-
Vielleicht hilft das:
http://msdn.microsoft.com/en-us/library/aa364991.aspxSimon
-
GetTempFileName
-
Nur ein Hinweis: Ich verwende in so einem Fall eigentlich immer GUIDs.
Das funktioniert dann nicht nur für Dateien sondern auch für Temp-Table-Namen, Mutex-Namen, ... alles mögliche eben was man mit einem Namen versehen kann, und wo man schnell und unkompliziert einen "sicher unbelegten" Namen braucht.Ich erwähne das weil ich schon öfters Code gesehen habe wo ich mir dachte "WTF, wieso so kompliziert, eine GUID hätte hier vollkommen ausgereicht".
-
Ich mach dann immer Zahlen als Dateiname:
srand( time(NULL) ); int YY = rand()%1000; std::ostringstream buffer1; buffer1 << YY << ".txt"; // mit Dateiendung std::string Filename = buffer1.str(); //Und mit dieser Funktion testen, ob es schon vorhanden ist:
int datei_lesen(const char *name) { char zeile[80]; fstream datei_in(name,ios::in); if (datei_in){ while(!datei_in.eof()) { datei_in.getline(zeile,80); } } return 1; }Natürlich #include <iostream>...