Autor Thema: Verzeichnis mit Hilfe eines FSO löschen  (Gelesen 11280 mal)

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #20 am: 31.07.13 - 09:36:31 »

Ok, also nochmal die Bitte um Hilfe. Ich habe die Anforderung, Daten nach Open Office Writer zu exportieren aus Lotus Notes. Ich schreibe in Lotus Script eine Funktion, die einen temporären Dateipfad anlegt, dort Dateien ablegt, und dieses Verzeichnis am Ende des Exports wieder löscht. Egal, wo ich diesen Pfad anlege (auf C direkt oder am Desktop...) - der Ordner lässt sich hinterher per Lotus Script nicht mehr löschen, per Hand aber schon und das ohne Rückfrage.

Schreibe ich es in LS: RmDir bekomme ich den Fehler "path/file access error". Darum versuchte ich es mit dem FSO, aber da meldet die Laufzeit "OLE: Automation object error".

Also, wie lege ich einen temporären Ordner an, den ich danach wieder löschen kann, in Lotus Script (ist mir natürlich lieber als FSO)...?

Offline dnotes

  • Aktives Mitglied
  • ***
  • Beiträge: 106
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #21 am: 31.07.13 - 10:01:40 »
Ich habe das jetzt mal aus der Hilfe kopiert:
MkDir "c:\test"
RmDir "c:\test"

Die von Dir besagte Fehlermeldung kommt bei mir nur bei:

1. MkDir "c:\test"  -> wenn das Verzeichnis bereits existiert
2. RmDir "c:\test" -> wenn das Verzeichnis nicht leer ist.
Da müsste dann vorher das Verzeichnis gellert werden.

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #22 am: 31.07.13 - 10:05:07 »
Ja, beides ist der Fall. Ich bräuchte entweder die Funktion MkDir mit Option "Überschreiben wenns schon existiert" oder die Funktion RmDir mit Option "Lösche auch den Inhalt". Sorry, komme aus der objektorientierten Welt und stoße bei Lotus Script manchmal einfach auf unsichtbare Mauern...  :-:

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #23 am: 31.07.13 - 10:17:14 »
Hallo,

Und was waere, wenn es jetzt auch etwas unlogisch klingt, wenn Du es mit der guten alten DOS-Variante
versuchst?
Da gibt es ja auch einen rmdir-Befehl. Und bei diesem kannst Du den Parameter /S (rmdir /S <Verzeichnis>) mitgeben
der dann auch gleich noch den gesamten Inhalt des zu loeschenden Verzeichnisses loescht.


Andreas

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #24 am: 31.07.13 - 10:21:15 »
In der Dos-Console geht es natürlich. Gibt zwar ne Rückfrage "Wollen Sie... (j/n)" aber geht. Genauso wie wenn ich es manuell mache, also mit Maus bzw. Tastatur im Explorer. Warum nur will mein Code es nicht für mich tun? Kann ich den Dos-Code in mein Script aufnehmen oder wie?

Offline Keydins

  • Aktives Mitglied
  • ***
  • Beiträge: 163
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #25 am: 31.07.13 - 10:22:00 »
Merk dir doch in einer Liste oder einem Array die Namen der von dir erzeugten Dateien und lösche nach Abschluss der Verarbeitung alle gespeicherten Dateien über eine Schleife per 'Kill'. Bei diesem Vorgehen kannst du dir dann das Löschen des temp-Verzeichnises sparen, da du das ja bei der nächsten Verarbeitung sicher wieder brauchen wirst.

Du kannst z.B. über die 'Environ' Funktion im Windowsumfeld das temp-Verzeichnis des Betriebssystems abfragen und es für deine Zwecke als Zwischenspeicher nutzen, am Besten in Verbindung mit der Kill-Löschschleife, um unnützen Datenmüll zu vermeiden.
Gruß Dirk

Aktuelle Notesumgebung
~800 BasicClients 9.0.1 FP9 SHF55
  10 FullClients 9.0.1 FP7 SHF143
    7 DominoServer 9.0.1 FP9 HF 139 / 64 Bit

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #26 am: 31.07.13 - 10:57:06 »
Ein Kill auf den Dateien habe ich auch schon versucht. Da bekomme ich die selbe Fehlermeldung.

Offline dnotes

  • Aktives Mitglied
  • ***
  • Beiträge: 106
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #27 am: 31.07.13 - 11:07:14 »
Mit diesem Code werden alle Dateien aus dem angegebenen Verzeichnis gelöscht und abschließend das Verzeichnis.

Code
        path = "c:\Test\" 
	Dim sess As New NotesSession
	Dim alleDateien As Variant
	Dim filename As String
	Dim filepath As String
	Dim sep As String
	If path <> "" Then
		
		If Instr(sess.Platform, "Windows") > 0 Then
			sep = "\" 
		Else
			sep = "/" 
		End If
		Redim alleDateien(0)
		If Instr(path, sep) > 0 Then
			filepath = Strleftback(path, sep) 
		End If
		filename = Dir(path, 16)
		While filename <> ""
			If filename <> "." And filename <> ".." Then
				If (Getfileattr(filepath & sep & filename) And 16 >0) Then 
					
					alleDateien = Arrayappend(alleDateien,filepath & sep & filename )
					
				End If
			End If
			filename = Dir 
		Wend
		alleDateien = Fulltrim(alleDateien)
	End If
	Forall DT In alleDateien
		Kill DT
	End Forall
	Rmdir path

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #28 am: 31.07.13 - 12:41:16 »
Man koennte ihm in der DOS-Box ja auch noch zusaetzlich den Parameter /Q mitgeben.


Andreas

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #29 am: 31.07.13 - 12:53:04 »
Kann es sein, dass, während Du mit Script die Dateien/den Ordner löschen willst, die Dateien noch von Open Office Writer gesperrt sind und es deshalb nicht funktioniert?

Du könntest testweise den Teil des Scriptes in eine andere Routine auslagern, der nur das Löschen vornimmt, und diese Routine separat laufen lassen. Funktioniert es dann, weißt Du, dass es "in einem Rutsch" nicht geht.

Dann solltest Du Die Löschroutine woanders unterbringen, z.B. im Queryclose des Dokuments, aus dem Du die Aktion startest, oder im Queryclose der Datenbank.

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #30 am: 31.07.13 - 13:35:19 »

Hallo dnotes,

dein Code hat geholfen! So werden die Dateien gelöscht und das Verzeichnis kann auch gelöscht werden. Ohne Fehler. Tausend Dank!!!!

Melanie

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz