Question

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?

Was it helpful?

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".

OTHER TIPS

You have to add the recursive true option. This option will remove all the directories.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top