Remove directory and it's contents (files, subdirectories) without using FileSystemObject

This piece of ccode uses RmDir to remove the Folder. AFAIK, RmDir cannot delete the folder unless it is empty, so we first clear the content in the folder then remove the directory.

Private Sub PrepareDirModified(dirStr As String)
On Error Resume Next
    If Right(dirStr, 1) <> "\" Then dirStr = dirStr & "\"
    Kill dirStr & "*.*" 
    RmDir dirStr
    MkDir dirStr
On Error GoTo 0
End Sub

Hope this helps.


The OP said they want to rewrite their code "without FSO" but it doesn't make sense.

If the goal is to reduce the amount of code, simply make it a one-liner:

CreateObject("Scripting.FileSystemObject").DeleteFolder "x:\myFolder"

As requested, this permanently removes the folder and it's contents.


More Information:

  • Microsoft Docs : DeleteFolder Method
  • Ron de Bruin : Delete files and folders