Kennisbank > lotusscript > Removing files and subdirectories from filesystem with lotusscript

Removing files and subdirectories from filesystem with lotusscript

Ferdi Verlaan

Ferdi Verlaan

Manager OTC & NOC

We are working on a PHP / Domino hybrid mobile web application. We will post some more information about it in the near future. We need PHP since we are sending out POST commands via the HTML5 file API. A Notes Agent is not capable of understanding these requests (via the normal session.request_content for example), and therefor we need PHP. It would also be possible by xPages and JAVA I assume, but PHP easier for us.

The PHP script is called asynchronous and uploads resized images to c:\php\files\<UniqueID>. A webQuerySave agent processes the newly saved NotesDocument and fetches all documents from this subfolder and attachs them to the RichTextItem.

The cleanup of these files is done by a cleanup Agent, not in the WQS agent, to have some fallback in case of errors. We run this agent every weekend to remove all uploaded files.

Cleanup Agent code:


Option
 Public
Option
 Declare

Dim
 globalPath As string
Sub
 Initialize

globalPath = “C:\php\files\”
Call ScanDirs( globalPath )
End
 Sub
‘ ==========================================================

‘ @FUNCTION: ScanDirs

‘ @AUTHOR: f.verlaan@aashq.nl
‘ @DATE: 27-10-2014


‘ Loops through the given path and removes all files

‘ and subfolders.

‘ based upon: 
http://www-01.ibm.com/support/docview.wss?uid=swg21317698
‘ ==========================================================


Sub
 ScanDirs(path As String)

On Error GoTo catch
On Error 5 Resume next

Dim sess As New NotesSession
Dim DirList 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 DirList(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)= 16Then
DirList = 
ArrayAppend(DirList,filepath & sep & filename & sep)
Else
‘ remove file
Kill filepath & sep & filename
End If
End If
filename = 
Dir
                       ‘ if filename is empty and filepath is not the starting folder, delete subfolder
If filename = “” Then
If filepath <> StrLeftBack(globalPath, sep) Then
RmDir filepath        
End If
End If

Wend
DirList = 
FullTrim(DirList)

ForAll dirpath In DirList
ScanDirs(dirpath)

End ForAll
End If

Exit sub

catch:
Print “Error “ & Err & ” in “ & GetThreadInfo(1) & ” on line “ & Erl & ” – “ & Error
Exit sub
End
 Sub

Make sure that the security setting for the agent is set to 3 to allow restricted operations.

Ferdi Verlaan

Over de auteur

Ferdi Verlaan

Werkzaam bij AASHQ sinds 2005, beheert en inspireert Ferdi een team van uitstekende ontwikkelaars, systeem- en netwerkingenieurs.

Hij is bedreven in verschillende programmeertalen maar ook zeer kundig in zowel Windows (Server) als Linux-besturingssystemen.

Ook interessante artikelen

Deze artikelen kunnen jou ook misschien aanspreken

woensdag 26 april 2023

De snelheid van onze nieuwe website

Ferdi Verlaan

Ferdi Verlaan

Manager OTC & NOC

Ferdi Verlaan

Ferdi Verlaan

Manager OTC & NOC

Neem contact met ons op

En breng jouw IT omgeving ook naar 'the next level'.

Neem contact op