Reputation: 4882
I am trying to delete a folder with subfolders/files.
Remove-Item -Force -Recurse -Path $directoryPath
I am getting the error Cannot remove item. The directory is not empty.
My PowershellScript.ps1 has executionPolicy unrestricted. The root folder I try to delete with the current logged in user has full permission on this folder.
On my local pc the code works but not on my Windows Server 2012 R2
.
Upvotes: 72
Views: 147879
Reputation: 922
This way works every time, it sorts the files and directories in descending order to ensure the deepest members of the directory structure are deleted first.
Get-ChildItem $output_path -File -Recurse | Sort-Object FullName -Descending | Remove-Item -Force -Confirm:$false;
Get-ChildItem $output_path -Directory -Recurse | Sort-Object FullName -Descending | Remove-Item -Force -Confirm:$false;
Remove-Item $output_path -Force;
Upvotes: 2
Reputation: 19184
Note that
Remove-Item -Force -Recurse -Path "C:\MyFolder"
Produces this error, but
Remove-Item -Force -Recurse -Path "C:\MyFolder\*"
Does not.
So don't forget the magic sauce
Upvotes: 8
Reputation: 1
this worked for me where i deleted files and folders older then i year recursively including folders.
Get-ChildItem -Directory -Path X:\AutomateCache | where-Object {$_.Lastwritetime -ile (get-date).AddMonths(-12) } | Remove-Item -Force -Recurse -Verbose
Upvotes: 0
Reputation: 7000
You could try the following:
Remove-Item -Force -Recurse -Path "$directoryPath\*"
Note when using the -Recurse
parameter with -Include
in Remove-Item
, it can be unreliable. So it's best to recurse the files first with Get-ChildItem
and then pipe into Remove-Item
. This may also help if you deleting large folder structures.
Get-ChildItem $directoryPath -Recurse | Remove-Item -Force
Upvotes: 93
Reputation: 8893
File is open in another program
I forgot that I had Visual Studio open with my project open and was getting this error.
Close any files associated with that directory, run PowerShell as admin, then run the command:
Remove-Item "C:\path\to\dir" -Recurse -Force
Pro Tip
You can also run this command to open file explorer:
ii "C:\path\to\dir"
If you right click and try to delete it, it might give you a more verbose error than command line.
Upvotes: 15