web-dev-qa-db-ja.com

アイテムを削除できません。ディレクトリは空ではありません

サブフォルダー/ファイルがあるフォルダーを削除しようとしています。

Remove-Item -Force -Recurse -Path $directoryPath

エラーCannot remove item. The directory is not empty.が発生しています

私のPowershellScript.ps1にはexecutionPolicy unrestrictedがあります。現在ログインしているユーザーで削除しようとしているルートフォルダーには、このフォルダーのフルアクセス権があります。

ローカルPCではコードは機能しますが、Windows Server 2012 R2では機能しません。

26
HelloWorld

次を試すことができます:

Remove-Item -Force -Recurse -Path "$directoryPath\*"

ただし、-RecurseRemove-Itemパラメーターは常に正しく機能するとは限らないため、最初にGet-ChildItemでファイルを再帰し、次にそれらをRemove-Itemにパイプするのが最善です。

Get-ChildItem $directoryPath -Recurse | Remove-Item -Force   
34
Richard

ファイルは別のプログラムで開いています

プロジェクトを開いた状態でVisual Studioを開いていて、このエラーが発生していたことを忘れていました。

そのディレクトリに関連付けられているファイルをすべて閉じ、管理者としてPowerShellを実行してから、コマンドを実行します。

Remove-Item "C:\path\to\dir" -Recurse -Force

4
Kolob Canyon