Domino 9 und frühere Versionen > Entwicklung
Wie bekomme ich das Windows Temp-Verzeichnis in ein String?
TMC:
Sorry, meinte R8 :)
IBM schweigt sich dem Thema "Reiner Notes Client unter Linux" wohl immer noch aus, bzw. sagt dazu einfach nix. Meines Erachtens korrekt, die Integration ist wohl wirklich nicht einfach. Mir war gar nicht bewusst, dass es auch unter Mac keine Entwicklungsumgebung gibt (bis ich das letztens mal gelesen habe).
Aber egal, zurück zur Frage:
Hier mal mein Code-Wirrwarr:
--- Code: ---Sub Click(Source As Button)
Dim session As New NotesSession
Dim szNotesDataPath As String
Dim szExistsPath As String
Dim szTempPath1 As String
Dim szTempPath2 As String
Dim szTempPath3 As String
szTempPath1=Environ$("Temp")
If szTempPath1="" Then
szTempPath2=Environ$("Tmp")
End If
If szTempPath2="" Then
szNotesDataPath = session.GetEnvironmentString("Directory",True)
szExistsPath = szNotesDataPath & "\Temp"
If Dir$(szExistsPath,16) = "" Then
Mkdir szNotesDataPath & "\Temp"
Msgbox "Dir Temp angelegt in " & szNotesDataPath
szTempPath3 = szNotesDataPath & "\Temp"
Else
Msgbox "Dir gefunden: " & Dir$(szExistsPath,16)
End If
End If
Msgbox "1 - Temp: " & szTempPath1 & Chr(10) & "2 - Tmp: " & szTempPath2 & Chr(10) & "3 - Data: " & szTempPath3
End Sub
--- Ende Code ---
So geht es dank Jens' Tipps :-)
Werde das natürlich noch sauberer machen, und wenn ich noch dazu komme, einen Artikel für Tipps&Tricks schreiben, da das wohl ja immer mal gefragt wird.
Per Default c:\ zu nehmen, wenn Temp bzw. Tmp = "" halte ich nicht für gut (auch wenn das nicht vorkommen sollte - aber dann kann ich ja auch gleich die If-Anweisung weglassen). Erstens weil dann im Main-Dir irgendwelcher Temp-Müll landet, und zweitens weil - gewisse Rechtevorgabe vorausgesetzt - nicht jeder User Schreibrechte auf c:\ hat.
Ins Notes-Datenverzeichnis sollte aber jeder User Schreibrechte haben, daher diese Lösung.....
Matthias
TMC:
Hier ist noch mein Tipps&Tricks-Artikel:
http://www.atnotes.de/index.php?board=9;action=display;threadid=14597
Semeaphoros:
Du hast natürlich recht mit dem C:\, mein Code stammt auch noch aus Win95-Zeiten, da war das kein Problem und es handelte sich um höchstens 2 Dateien, die sich immer wieder überschrieben haben, da war das mit dem C:\ nicht soo tragisch. Deine Lösung ist natürlich besser. Nur das sz..... passt mir nicht. In meinen Augen ist sz.. als Prefix für Basic-Strings ein Dummfug, schliesslich sind das keine "Zero-Terminated strings", wie das in der ungarischen Notation der Fall ist (alles andere, inkl. C-StandardBibliotheken und die jüngsten LotusScript Stringfunktionen verwenden str als Prefix: strCompare, strLeft, strRight .......)
Uebrigens, der Code hier hat einen Haken: Wenn er den szTempPath1 gefunden wird, dann geht er trotzdem in den Fallback-Code, weil szTempPath2 in dem Falle gleich "" ist.
TMC:
Jens, ich wollte damit auch nicht Dein Beispiel kritisieren, wenn es so rüberkam: SORRY!
Zu sz: Das stimmt, ich hatte mir das so angewohnt, weil
a) in einigen I'net-Codebeispielen das auch so verwendet wird
b) wir da auch im Projekt-Bereich das als "valid" gesehen hatten
Ich sollte mir das aber schleunigst wieder abgewöhnen, ein "str" wäre da einfach sauberer.
Der korrekte Code ist übrigens unter Tipps und Tricks, dies war nur mein "Code-Wirrwarr" zum testen, und sollte so nicht verwendet werden.
Grüße,
Matthias
Semeaphoros:
Ich hab das nicht als Kritik aufgefasst, ich nehme mal an, dass ich selbst das ungeschickt formuliert habe --- sorry meinerseits, von Dir ist keine Entschuldigung erforderlich!
Ich wollte nur durchsichtig machen, warum mein Code so war. Für Attachements, wie Du das unter T&T andeutest, wäre C:\ tatsächlich katastrophal, denn das könnte rasch einmal überlaufen. In meinem Fall war das das Bereitstellen einer Mass-Mailing-Datei mit Adressdaten, das ergibt im Normalfall genau 2 Dateien, und die waren fest verdrahtet, in der Situation ist C:\ nicht so dumm, der Schrott hält sich in Grenzen und man weiss sofort, wo man aufräumen muss. Deine Lösung ist da viel sauberer mit dem Temp im Notes, wobei ich wahrscheinlich eher auf die Windows-Strategie zurückgreifen würde, das ist noch ein bisschen "normaler", wenn man dem überhaupt so sagen darf.
Danke für die geleistete Arbeit.
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln