Pascal Scripting: DelTree


function DelTree(const Path: String; const IsDir, DeleteFiles, DeleteSubdirsAlso: Boolean): Boolean;


Deletes the specified directory if IsDir is set to True, or files/directories matching a wildcard if IsDir is set to False. Returns True if it was able to successfully remove everything.

If DeleteFiles is set to True, files inside the specified directory will be deleted if IsDir is True, or files matching the specified wildcard (including those with hidden, system, and read-only attributes) will be deleted if IsDir is False.

If DeleteFiles and DeleteSubdirsAlso are both set to True, subdirectories (and their contents) will be deleted in addition to files.


This function will remove directories that are reparse points, but it will not recursively delete files/directories inside them.

  // Delete the directory C:\Test and everything inside it
  DelTree('C:\Test', True, True, True);

  // Delete files matching C:\Test\*.tmp
  DelTree('C:\Test\*.tmp', False, True, False);

  // Delete all files and directories inside C:\Test
  // but leave the directory itself
  DelTree('C:\Test\*', False, True, True);