Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Demian am 13.07.06 - 19:20:22
-
Hallo alle zusammen,
Ich habe mir einen Agenten geschrieben, der aus einer Exceltabelle ein bestimmtes Blatt in eine neue Tabelle kopiert, in einem selbst angelegten "Temp-Ordner"speichert, und dann als Anhang in einer Mail versendet.
Jetzt möchte ich nach dem Versenden alle Dateien in dem Temp Ordner löschen. In Excel ging das mit: kill "C:\Musterordner\" & "*.*"
In Notes sacht er mir dann aber Path/File access Error
Woran liegt das? Bzw. noch viel wichtiger: Wie kann ich die Dateien löschen?
Gruß
Demian
-
Ich befürchte, das ist kein Notes-Problem, sondern eines von Windows bzw. anderen Programmen: Eines oder mehrere von denen hat wohl im Temp-Ordner noch ein File im Zugriff. Gerade das "*.*" funktioniert ja in der Regel auch nicht aus dem Windows-Explorer.
Bernhard
-
Erzeugst Du die Datei in Notes mt Script?
Falls ja, musst Du die vor dem killen mit Close ... schließen.
Andreas
-
Hallo ihr beiden,
Hier mal ein Ausschnitt des Codes wie er in Excel war:
....
ActiveWorkbook.Close
mail.display
mail.send
ChDir pfad
Kill "*.*"
....
Hat bisher immer funktioniert. Also kann es ja eigentlich kein "Windows-Problem" sein, oder? Zumal, wenn ich die Datei explicit im Kill angebe klappts (siehe unten).
Die Datei wird per Script erzeugt, und auch vor dem Kill wieder geschlossen:
Function ListeÖffnen
On Error Goto Fehler
Monatsabfrage
Set ex = getobject(,"Excel.Application")
Weiter:
ex.visible = False
ex.workbooks.open "H:\Personal\Personalabteilung\Geburtstage.xls"
ex.sheets(Monat).select
ex.ActiveSheet.Copy 'Kopieren der aktuellen Tabelle in eine neue Arbeitsmappe
ex.workbooks("Geburtstage.xls").close
ex.activeworkbook.saveas "H:\Personal\Personalabteilung\temp\" & ex.ActiveSheet.Range("a1").Value 'Speichern der neuen Mappe
ex.activeworkbook.close
ex.visible = True
Set ex = Nothing
Exit Function
Fehler:
If Err() = 208 Then
Set ex = createobject("Excel.Application")
Goto weiter
Else
Msgbox Err() & " " & Str(Err) & ": " & Error$
End If
End Function
Gelöscht wird hier:
Set obj = item.EmbedObject(EMBED_ATTACHMENT,"","H:\Personal\Personalabteilung\temp\Geburtstagsliste " & Monat & ".xls")
Kill "H:\Personal\Personalabteilung\temp\Geburtstagsliste " & Monat & ".xls"
Bin jetzt vorerst so vorgegangen, dass ich nur die erstellte Datei wieder lösche. Das klappt auch. Aber um auf Nummer sicher zu gehen, würde ich gerne alle Dateien löschen.
Den Umweg über mkdir und rmdir würde ich hier sehr ungern gehen :)
Gruß
Demian
-
Ich Verweise Dich nochmal auf Bernhard...
Schonmal versucht manuell Deinen Temp-Ordner zu löschen?
Das klappt meistens auch nicht, weil, wie Bernhard schon sagte, diverse Programme Ihre Finger da drauf haben.
André
-
Hallo,
es handelt sich hier ja nicht um den Windows Temp-Ordner. Es ist ein ganz normaler Ordner, den ich einfach temp genannt habe. Insofern können eigentlich keine anderen Programme ihre Finger drauf haben.
Und wenn dem so wäre, dürfte sich die Datei ja auch bei expliciter Namensangabe nicht löschen lassen. Das tut sie aber.
Gruß
Demian
-
Irgendwie verwendest Du aber auch unterschiedliche Pfadangaben. Einmal heisst es
ex.workbooks.open "H:\Personal\Personalabteilung\Geburtstage.xls"
Dann aber
Kill "H:\Personal\Personalabteilung\temp\Geburtstagsliste " & Monat & ".xls"
So kann das dann auch nichts werden - wenn das genauso in Deinem Code stehen würde.
Bernhard
-
Aus der Hilfe (zur Funktion Dir) - leicht abgewandelt für deinen Fall:
pathName$ = "H:\Personal\Personalabteilung\temp\*.*"
fileName$ = Dir$(pathName$, 0)
Do While fileName$ <> ""
Kill fileName$
fileName$ = Dir$()
Loop
-
Hallo LN4ever,
vielen Dank für deinen Tip.
Es leuchtet mir zwar nicht ganz ein, warum beim "Dir" das "*.*" funktioniert und beim "kill" nicht, aber es funktioniert einwandfrei. Es werden kommentarlos alle Dateien gelöscht.
Vielen Dank.
Gruß
Demian