Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Andysun am 05.12.05 - 15:23:12

Titel: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: Andysun am 05.12.05 - 15:23:12
Hallo @all,

gibt es im Lotus Script einen Befehl, um ein Verzeichnis im FileSystem ( Windows ) anzulegen.
Kann mir jemand helfen ?

Beste Grüsse

Andy
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: m3 am 05.12.05 - 15:30:11
Ja und Ja.






































Linux: mkdir
DOS: mkdir
LotusScript: mkdir (welch Überraschung)
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: Andysun am 05.12.05 - 15:35:52
zu einfach,

deinen Tipp kann ich nicht annehmen, ich geh jetzt nach Hause,
Vielen Dank

 ;)
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: Johnson am 05.12.05 - 15:36:48
Jedoch musst du sicherstellen, daß das Verzeichniss, indem du den Ordner erstellen willst bereits existiert.

z.B. C:\Temp\Test kann nicht erstellt werden wenn C:\Temp nicht existiert. In diesem Falle musst du erst prüfen, ob das Zielverzeichnis da ist und ggf. erstellen.

Ich mach das immer über das FileSystemObject:

Code

Sub CreateFolder(str_path as String)
	Dim str_drive As String
	Dim str_tmppath As String
	On Error ErrNoPlatSupport Resume Next
	Set fso = CreateObject("Scripting.FileSystemObject")
	If Err = ErrNoPlatSupport Then Err = 0
	If Not (Isempty(fso)) Then
		' type of drive
		If Not Left(str_path,2) = "\\" Then
			If Not fso.DriveExists(Strleft(str_path,"\") & "\") Then Exit sub
			str_drive = Strleft(str_path,"\") & "\"
		Else
			str_drive = "\\" & Strleft(Strright(str_path,"\\"),"\") & "\"
		End If
		' create folder
		str_tmppath = Strright(str_path,str_drive)
		Do Until Instr(str_tmppath,"\") = 0
			str_drive = str_drive & Strleft(str_tmppath,"\") & "\"
			str_tmppath = Strright(str_path,str_drive)
			If Not fso.FolderExists(str_drive) Then Call fso.CreateFolder(str_drive)
		Loop
		str_drive = str_drive & str_tmppath
		If Not fso.FolderExists(str_drive) Then Call fso.CreateFolder(str_drive)
	End If
End Sub

Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: m3 am 05.12.05 - 15:41:25
Über solche Scripts freu ich mich immer, wenn die auf meinem Linux-Server laufen wollen. :(
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: Johnson am 05.12.05 - 15:51:25
Hmpf. Pinguine!!!  ;)

Ich hab das auch schon, da komm ich aber grad nicht dran, da ich als Testuser unterwegs bin.

Mit ein bisschen Kreativität und logischem Verständnis kannst du das mit Sichterheit umschreiben.  ;)
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: Johnson am 05.12.05 - 16:47:13
Eat this:  ;)
Code
Function CreateFolder(str_path As String) As Boolean
	Dim str_separator As String
	Dim s As NotesSession
	Dim str_tmppath As String
	Dim int_pos As Integer
	Dim int_begin As Integer
	CreateFolder = False
	Set s = New NotesSession
	Select Case s.Platform
	Case "Windows/16", "Windows/32": str_separator = "\"
	Case Else:  str_separator = "/"
	End Select
	int_begin = 1
	str_tmppath = str_path
	Do
		int_pos = Instr(int_begin, str_path, str_separator)	
		If (int_pos = 0) Then
			str_tmppath = str_path
		Else
			str_tmppath = Left$(str_path, int_pos - 1)
		End If		
		If (Len(Dir$(str_tmppath, ATTR_DIRECTORY)) = 0) Then
			On Error Resume Next
			Mkdir str_tmppath
			If Err > 0 Then
				Err = 0
				Exit Function
			End If
		End If
		int_begin = int_pos + 1
	Loop While(int_pos > 0)
	CreateFolder = True
End Function
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: m3 am 05.12.05 - 16:56:32
 ;D
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: koehlerbv am 06.12.05 - 00:01:24
Das geht auch "pure LS" ohne Unterscheidung nach Plattformen. Think! (wer hat das nur schon mal gesagt?  ;D)

Bernhard

EDIT: Blödsinn, was ich da geschrieben habe ...
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: Johnson am 06.12.05 - 11:19:07
Kapitulation!

Ich hoffen nicht so ´n Ulk wie Datei im Zielordner erstellen und dann wieder löschen nur daß das Verzeichnis da ist!!!
Ich muss doch wissen was als Trenner verwendet werden soll.
Oder gibts ´ne Property in LS.
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: TMC am 06.12.05 - 23:56:01
Bernhard, das würde mich jetzt auch interessieren, wie Du das "pure LS" löst.

Zumal auch die Help zu MkDir meint:
Code
Use the path syntax for the platform on which you are running LotusScript.

Danke.
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: koehlerbv am 07.12.05 - 00:07:29
Think! (wer hat das nur schon mal gesagt?  ;D)

Das hätte ich befolgen sollen  :'(
Auf der Ebene externer Files ist es natürlich erforderlich, die OS-Konventionen zu beachten. Lediglich Operationen mit NSFs im / unterhalb des DataDirs sind bei Operationen mit den Klassen NotesDatabase und NotesDBDirectory nicht davon betroffen.

Mea culpa.

Bernhard (mit rotem Kopf)
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: TMC am 07.12.05 - 00:11:18
Kein Problem, und danke für die Aufklärung, was Du gemeint hast  ;)
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: koehlerbv am 07.12.05 - 00:20:26
Ich ärgere mich trotzdem über mich selbst ! Das war ein Posting ohne tieferes nachdenken und entgegen den Verfahren, die ich ja selber anwende ...

Dem Sinn Deiner aktuellen Signatur widerspricht es sowieso:
"A good programmer is someone who looks both ways before crossing a one-way street."
Und genau das ist ja auch mein Leitspruch bei der Programmierung - ich achte dabei auch noch auf U-Boote und Tiefflieger, und es stört mich dabei nicht im geringsten, wenn man mich dabei der Pedanterie zeiht (im "anderen Leben" lasse ich es erheblich lockerer angehen  ;D).

Bernhard
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: TMC am 07.12.05 - 00:33:18
Schwamm drüber, im Hinblick auf Deine vielzählige Hilfe hier hast Du sicherlich einen Ausrutscher pro 50 Postings gut  ;D Sonst denkt ja gar keiner mehr hier mit und die drucken Deine AtNotes-Hilfestellungen noch in R8 als "German Translation" ab ;D
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: koehlerbv am 07.12.05 - 00:37:15
Ich krieg' ja schon wieder einen roten Kopf ...

Bernhard
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: Johnson am 07.12.05 - 08:38:02
Da wir uns jetzt alle ganz lieb haben  ;D hatte ich da einen Vorschlag:
Ich würde gern unter Tools eine FileSystem Klasse posten, da die Fragen zum Dateihandling ja des Öfteren aufkommen. Die soll natürlich von euch erfahrenen und hilfsbereiten Notesveteranen begutachtet und kommentiert werden.

What do you think?
Titel: Re: Neues Verzeichnis auf den FileSystem anlegen
Beitrag von: koehlerbv am 07.12.05 - 15:35:48
Das wäre sogar was für die Best Practices. Mach doch in den Diskussionen dazu einen Thread auf. Wir werden gerne diskutieren und ggf. Ergänzungen liefern, und dann wird das Dein erster BP-Artikel  ;)

Bernhard