Hallo alle zusammen,
ich habe folgendes Problem:
Ich habe ein Agenten erstellt, welcher ein Wor-Dokument erstellt und in Notes in einem Dokument hinterlegt.
Bei diesem Agenten werden 2 Datein in einen Ordner erstellt der für diesen Agenten immer extra erstellt wird. Das Problem ist dass diese beiden Datein und der Ordner sich nicht löschen lassen. Ich habe das Forum schon fünf mal durchsucht, habe leider dennoch nichts gefunden. Ich hoffe Ihr könnt mir helfen.
Anbei der Code zum schließen von Word und das löschen der Datein.
(Da ich den selben Code an 2 stellen im Agenten benötige habe das schließen und löschen in eine eigenen Sub gepackt,)
Sub CloseDelete(wordapp As Variant,notesPfad As String)
Dim pathName As Variant
Dim FileName As Variant
wordapp.Quit 0
Call wordapp.Quit(0)
Set Wordapp = Nothing
Sleep(30)
pathName = NotesPfad +"\*.*"
fileName = Dir$(pathName, 0)
Do While fileName <> ""
Kill fileName
fileName = Dir$()
Loop
Rmdir NotesPfad & "\"&Cstr(Date)
End Sub
Jo
also ich teste es hier an nem PC und an dem bin ich admin. Und ich kann die Datein ja nach dem Agent auch manuell ohne probleme löschen. Jedoch kann ich den Ordner nicht löschen da Windoof mir sagt das da noch jemand drauf zugreift.
Unsere "normalen" Benutzer haben alle einen NC also eine Workstation wo sie natürlich extrem wenige Berechtigungen habe. Doch ebend aus diesem Grund habe ich mich für den Notespfad entschieden.
NotesPfad= session.GetEnvironmentString("Directory",True)
NotesPfad = NotesPfad & "\XYZ_" & Cstr(Date)
Du greifst ja noch mit dem Script auf die Datei zu. Ich denke es liegt daran.
Schreib doch die Dateinamen, der zu löschenden Dateien in eine Liste und Lösche in einem zweiten Durchlauf (mit den Listelementen) die Dateien.
Bsp.:
pathName = NotesPfad +"\*.*"
fileName = Dir$(pathName, 0)
Dim lstToDel List as String
Do While fileName <> ""
lstToDel( fileName ) = "1"
fileName = Dir$()
Loop
forall vD in lstToDel
Kill Listtag( vD )
End Forall
Ich würde mal z.B. ein Print oder eine Msgbox einbauen, in der ich vor dem Kill ausgebe, was gelöscht werden soll.
pathName = NotesPfad +"\*.*"
fileName = Dir$(pathName, 0)
Do While fileName <> ""
Print "Lösche <" & fileName & "> ... "
Kill fileName
Print "<" & fileName & "> gelöscht."
fileName = Dir$()
Loop
Eventuell zeigt sich hierbei ja z.B., dass versucht wird, das Verzeichnis selbst zu löschen.
-Werner
Ich habe mir das jetzt alles nochmal durch den Kopf gehen lassen und mir ist ein Geistesblitz gekommen. Und zwar konnte das so wies jetzt da steht nicht funktionieren.
Da in filename zwar die Datei steht die gelöscht werden soll, jedoch nicht mit dem dazugehörigen Pfad. Daher kann die Datei auch nicht gefunden werden....
Anbei der korrekte Code:
Dim pathName As Variant
Dim FileName As Variant
pathName = NotesPfad +"\*.*"
fileName = Dir$(pathName, 0)
Dim file As Variant
Do While fileName <> ""
file = NotesPfad +"\"+ fileName
Kill file
fileName = Dir$()
Loop
Rmdir NotesPfad
Nochmal vielen Dank an alle....