Domino 9 und frühere Versionen > Entwicklung

Wie bekomme ich das Windows Temp-Verzeichnis in ein String?

<< < (3/3)

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