Delete all files in a directory using Chef

chef-infra

Solution

If I recall correctly, setting the `recursive true` attribute will force remove non-empty directories.

The docs for the `directory` LWRP don't describe this behavior, but they do provide this usage example:

directory "/tmp/something" do
  recursive true
  action :delete
end

The docs have since been amended to cryptically say:

`recursive` Ruby Types: TrueClass, FalseClass

Create or delete parent directories recursively. For the owner, group, and mode properties, the value of this attribute applies only to the leaf directory. Default value: `false`.

They still stop short of saying "`recursive true` is required to delete non-empty directories. Without this setting, attempting to delete a non-empty directory will fail with the message: `Errno::ENOTEMPTY Directory not empty`".

Problem

Attempting to delete a non-empty folder: ``` directory "C:\tempdirectory" do action :delete end ``` ... in Chef I receive: ``` Errno::ENOTEMPTY Directory not empty ``` Is there a quick way to delete all files in the directory? Or an argument or flag to allow me to delete non-empty directories?

Original source