Tech Tip: Deleting files programmatically by days ago and later
PRODUCT: 4D | VERSION: 14.0 | PLATFORM: Mac & Win
Published On: May 29, 2014
Below is a utility method to delete files in a path programatically by file extension and the number of days ago (and later) from the current date.
An example of using the method to delete text files of ".txt" extension that are 7 days old.
// ----------------------------------------------------------------- // Name: DELETE_FILES_BY_DAYS_AGO // Description: Takes the path to where to delete the files, the // file extension type, and number of days ago (and later) from the current // date to delete files. // // Parameters: // $1 (TEXT) - Path to where the files delete // $2 (TEXT) - File extension type to delete // $3 (LONGINT) - Number of days ago from the current date to delete // ----------------------------------------------------------------- C_TEXT($path;$1) // path of where the file(s) are located C_TEXT($type_input;$2) // file extension type of the file selected C_TEXT($type) // type of extensions C_LONGINT($i;$days;$3) // number of days ago to delete C_DATE($modified_on) // date of the file that has been modified ARRAY TEXT($temp_array;0) // array for the file names in a path If (Count parameters>2) $path:=$1 $type_input:=Lowercase($2) // force characters to be lowercase $days:=$3 DOCUMENT LIST($path;$temp_array) //puts the files names on a array // extract the document list for a specific document type For ($i;1;Size of array($temp_array) $type:=Document type($temp_array{$i}) // determine type $type:="@"+$type+"@" // wild card file extension If ($type_input=Lowercase($type)) // finding the extension GET DOCUMENT PROPERTIES($path+"\\"+$temp_array{$i};$locked;$invisible; \ $created_on;$created_at;$modified_on;$modified_at) If ((Current date-$modified_on)>=$days) // check the number of days to delete DELETE DOCUMENT($path+"\\"+$temp_array{$i}) End if End if End for End if |
An example of using the method to delete text files of ".txt" extension that are 7 days old.
DELETE_FILES_BY_DAYS_AGO ($path;".txt";7) |