Domino 9 und frühere Versionen > ND7: Entwicklung
Dateinamen für temporäre Datei erzeugen
(1/1)
gstueb:
Hallo,
ich muss von einem Client aus eine temporäre Datei erzeugen. Derzeit speichere ich diese Datei einfach im TEMP-Verzeichnis unter einem fixen Dateinamen:
--- Code: ---strTempFDF = Environ("TEMP")+"\\"+"formular.fdf"
--- Ende Code ---
Ich möchte nun aber sicherstellen, dass der Dateiname eindeutig ist und nicht bereits existiert. Gibt es in Notes evtl. eine Funktion, um einen eindeutigen Dateinamen zu ermitteln? Falls nein, würde ich mir gerne selbst eine solche Funktion schreiben.
Wie würdet ihr einen eindeutigen Dateinamen ermitteln? Name der DB + Zeitstamp? Oder einfach TEMPxxxxxxx und xxxxxxx per Zufallsgenerator so oft verändern, bis der Dateiname nicht vorkommt?
Danke & Gruß,
Gregor
koehlerbv:
Was Du auf jeden Fall machen solltest: Mit Dir$ das Verzeichnis auf den aktuell gewählten Dateinamen prüfen.
Wege, um einen (möglichst) eindeutigen Dateinamen zu erzeugen, gibt es viele:
- Userkürzel auf NotesSession.UserName + YYYYMMDDHHMMSS
- temp. Dokument erzeugen und dessen UNID verwenden
- Evaluate über @Unique
- fortlaufender Zähler, der permanent geführt wird
Das liesse sich hier noch sehr viel weiter fortführen, aber Du brauchst ja eh nur eine Variante.
HTH,
Bernhard
TRO:
über den (Windows-) API-Aufruf
Declare Function W32_GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (Byval lpszPath As String,_
Byval lpPrefixString As String, Byval wUnique As Long, Byval lpTempFileName As String) As Long
geht es auch.
Braucht man dann noch den Temp-Pfad, dann hilft das hier weiter:
Declare Function W32_GetTempPath Lib "kernel32" Alias "GetTempPathA" (Byval nBufferLength As Long, Byval lpBuffer As String) As Long
hth
Thomas
diam:
Hallo!
Ich nutze seit Jahren Scripting.FileSystemObject:
Function FileSystemTempFileCreate() As String
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim sf
Set sf = fso.GetSpecialFolder(2)
FileSystemTempFileCreate=sf.path+"\"+fso.GetTempName()
End Function
siehe auch: http://msdn.microsoft.com/en-us/library/6kxy1a51%28VS.85%29.aspx
Dirk
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln