Auslöser war folgender Thread:
http://www.atnotes.de/index.php?board=7;action=display;threadid=14595Gerade für Attachment-Aktionen braucht man ja immer ein temporäres Verzeichnis. Viele Entwickler bedienen sich da c:\Temp etc., was meines Erachtens nicht sauber ist aus 3 Gründen:
a) Das Verzeichnis ist evtl. gar nicht vorhanden
b) Der User hat keine Schreibrechte
c) Das Windows-Temp-Verzeichnis ist nicht c:\Temp und wird so bei Rechner-Aufräumarbeiten nicht geleert
Daher sollte man meines Erachtens immer das bei Windows definierte Temp-Verzeichnis verwenden.
Notes schafft mit der Environ-Function die Möglichkeit, dieses Verzeichnis auszulesen. Auf manchen Systemen klappt dies aber u.U. nicht, daher habe ich im folgenden Code berücksichtigt, dass im Worst Case ein Temp-Verzeichnis im Notes-Datenverzeichnis angelegt wird (wo der User auch immer Schreibrechte hat / haben sollte).
| Sub Click(Source As Button) |
| Dim session As New NotesSession |
| |
| Dim szNotesDataPath As String |
| Dim szExistsPath As String |
| Dim szTempPath As String |
| |
| |
| szTempPath=Environ$("Temp") |
| |
| If szTempPath="" Then |
| szTempPath=Environ$("Tmp") |
| End If |
| |
| |
| |
| If szTempPath="" Then |
| szNotesDataPath = session.GetEnvironmentString("Directory",True) |
| szExistsPath = szNotesDataPath & "\Temp" |
| If Dir$(szExistsPath,16) = "" Then |
| Mkdir szNotesDataPath & "\Temp" |
| szTempPath = szNotesDataPath & "\Temp" |
| Else |
| szTempPath = szNotesDataPath & "\Temp" |
| End If |
| End If |
| |
| Msgbox szTempPath |
| |
| |
| End Sub |
Eine andere Vorgehensweise mancher Entwickler ist es, die Registry auszulesen, was aber m.E. bei unterschiedlichen Betreibssystemen zu Problemen führen kann.
Ich bin über Anregungen und Verbesserungsvorschläge dankbar :-)
Matthias