Many of you would have come across situations where you can’t delete a file or folder no matter how you try. This article discusses the ways to delete files or folders that are stubborn or undeletable using normal methods.
There could be at least 4 reasons you cannot remove those stubborn files or folders.
- The file or folder is currently in use by some program
- Can’t delete files or folders having invalid character in their names
- You don’t have the required NTFS permissions
- File system corruption
How to Delete a Stubborn Undeletable File or Folder in Windows
“File in Use” Scenario
There are umpteen software programs that help you release the lock on a file/folder by some application. Utilities like Unlocker and Process Explorer will help you forcibly close the file or folder handle and then delete the file or folder.
Before resorting to using those programs, first see if you can delete the stubborn file after logging off and logging in again, or after a restart cycle. It helps in most cases. Even better, start Windows in Safe mode and delete the stubborn file or folder. See how to Start your PC in safe mode in Windows 10 or 11.
If you want to delete the file or folder without having to restart Windows, you can use tools like Process Explorer or Unlocker. These tools help you find the program/executable is causing the problem, release the lock and delete the file.
Restart Explorer Shell
File Explorer may sometimes have a lock on media files hooked up by its shell extensions generally. If that’s the case, cleanly exiting the Explorer shell will help. Here is how to cleanly terminate and restart the Explorer shell in Windows 7 through 10.
Note that in Windows 7 and above, the Windows “File in use” dialog will show you the name of the program using the file. All you need to do is first close the program.
However, the program name may not be displayed in some cases, and that’s why we need tools like Unlocker, Process Explorer or Resource Monitor.
IObit Unlocker setup adds a context menu extension for files and folders. When you right-click on a file or folder and click IObit Unlocker, it shows which program is using the target file or folder.
Unlocker also offers you these options, which are self-explanatory even for end-users:
- Unlock & Delete
- Unlock & Rename
- Unlock & Move
- Unlock & Copy
- Forced mode
You can try “Forced mode” if unlock fails in normal mode. It’s an aggressive mode wherein it terminates the related processes rather than just closing the file/folder handle.
Process Explorer is an excellent tool that needs no introduction. We’ve covered Process Explorer many times in the past.
Launch Process Explorer as administrator. Use the Find option (Ctrl + F), type in the part of the file name, and press Enter.
You’ll see the process which is using that file. All you need to do is close the program manually, and then delete the stubborn file.
Also, Process Explorer lets you close the file handle via the lower pane view. However, exiting the program is the most preferred way.
MoveFile.exe from Windows SysInternals
MoveFile utility (to be run from administrator Command Prompt window) allows you to schedule move and delete commands for the next reboot.
movefile.exe [source] [dest]
Specifying an empty destination (“”) deletes the source at boot. An example that deletes
movefile d:\tools\stubborn.pdf ""
To delete (on reboot) a folder named “1” located on my desktop, I used this command:
movefile C:\Users\ramesh\desktop\1 ""
The job was perfectly completed after a restart! The MoveFile utility uses MoveFileEx API to rename or delete a file. It registers the delete or rename operation in a
MULTI_STRING registry value named
PendingFileRenameOperations, under the following branch:
During the next restart, the Session Manager performs the delete or rename task by reading the registered rename and delete commands from the
PendingFileRenameOperations registry value. As you can see in the above screenshot, Windows Defender seems to have scheduled a delete operation (to get rid of a superseded driver file) after a signature update.
Download MoveFile from Windows Sysinternals.
Files or folders having reserved names or invalid characters in their names
Sample scenario: Can’t empty Windows.old using Disk Cleanup or Storage Settings as the files in Cortana “LocalState” folder remains undeletable
IOBit Unlocker is also helpful when you’re unable to clear out the
Windows.old folder (which stores the previous Windows installation files) after installing the latest Feature Update. Windows.old may sometimes be undeletable due to a problem (invalid characters in the file name) with files under the
Microsoft.Windows.Cortana_cw5n1h2txyewy folder under
C:\Windows.old. The complete path for the problematic folder is below:
As you can see, the folder
LocalState has a couple of dots (..) after its name, which could be preventing the folder from being deleted or accessed. Attempts to delete the folder result in the following error:
An unexpected error is keeping you from deleting the folder. If you continue to receive this error, you can use the error code to search for help with this problem. Error 0x80004005: Unspecified error
with options to
Cancel the operation.
Location is not available C:\Windows.old\Users..\AppData\Local\packages\Microsoft.Windows.Cortana_cw5n1h2txyewy\LocalState is unavailable. If the location is on this PC, make sure the device or drive is connected or the disc is inserted, and then try again. If the location is on a network, make sure you're connected to the network or Internet, and then try again. If the location still can't be found, it might have been moved or deleted.
Cortana folder (or the entire
Windows.old folder). This will help you completely wipe out Windows.old folder easily.
Using WinRAR to delete an invalid file or folder (easiest option)
WinRAR’s file manager can handle files and folders that have Unicode or hidden characters in the file name. Using WinRAR, you can rename or delete files or folders containing invalid characters, trailing spaces, or dots.
You can easily rename or delete a problematic file using WinRAR’s file manager user interface.
- Download WinRAR and run it.
- In WinRAR, browse the parent folder that has the problematic file or subfolder.
- Right-click on the item and choose Rename.
- Assign a valid name that the Windows Operating System will support.
To delete a file (instead of renaming it), press Shift + Del (for permanent deletion) or Del (to send it to Recycle Bin).
Note that the Del command may not work in some cases — e.g., the file name contains invalid characters, or the file name is too long. It would ask you to use Shift + Del to delete the file.
So, press Shift + Del for permanent deletion, and click Yes to proceed.
voilà! The stubborn file/folder is now gone. Thanks to WinRAR for making the job very easy!
The case of the duplicate Windows directory
Here’s another case where a duplicate “Windows ” directory (with a trailing space) appeared after updating Windows.
Attempting to access the folder contents caused the error “Location is not available”.
Attempting to delete the item via Safe mode caused the following error:
The action can't be completed because the folder or the file in it is open in another program.
Looking at the timestamp in the error message, it appears as if the delete command was being executed on the real “Windows” folder instead of the duplicate “Windows ” folder, even though the user selected the duplicate Windows folder and pressed the Del key. This is a strange situation where the File ID returned by FsUtil.exe (and the Inode ID returned by WSL) were exactly the same for both folders.
A Windows user named Angelo indicated that WinRAR helped her nuke the stubborn and inaccessible “Windows ” folder. Note that the Windows Subsystem for Linux (WSL) was unable to see the duplicate Windows directory. WSL returned the same INODE for both “Windows” and “Windows ” directories.
Fortunately, the WinRAR method worked!
Deleting file names (with reserved characters) manually
If you want to wipe off those invalid files and folders manually, you can use the internal syntax “
\\?\” for file or folder paths. See examples and screenshots below:
Invalid or reserved characters in the filename
You may not be able to delete a file if the file name includes an invalid name (for example, the file name has a trailing space or a trailing period or the file name is made up of a space only). To resolve this issue, use a tool that uses the appropriate internal syntax to delete the file. You can use the “\\?\” syntax with some tools to operate on these files, for example:
del "\\?\c:\path_to_file_that contains a trailing space.txt "
Src: Excerpt from Microsoft KB You cannot delete a file or a folder on an NTFS file system volume
Here’s an example where a file had a trailing space and the usual
del *.* command didn’t work out. It returned the error “The system cannot find the file specified”:
However, using the internal syntax (“
\\?\“) and including the trailing space made deletion of the file possible.
EXAMPLE: Deleting folders with reserved names or having invalid characters (such as dots and spaces) in the name.
To delete the
LocalState.. folder under the Cortana Package folder, here is the path and command-line you use:
rd /s \\?\C:\Windows.old\Users\%username%\AppData\Local\Packages\Microsoft.Windows.Cortana_cw5n1h2txyewy\LocalState..\
Run that command from an administrator Command Prompt.
Let’s say we have some invalid folders, namely
(Note that the word
con is a reserved name, and shouldn’t be used in file or folder names.)
Attempting to access the folder with a reserved name normally (e.g.,
con) causes the following error:
Location is not available path:\con is not accessible. The handle is invalid.
To delete the folder, we’ll now run the following command from the admin Command Prompt:
rd /s "\\?\C:\con"
The other two folders namely
LocalState.. have invalid characters (.) in the file name. Let’s run the following commands to delete those folders:
rd /s "\\?\C:\conduct." rd /s "\\?\C:\LocalState.."
Voila! The three folders are now removed.
For more information on dealing with files containing reserved or invalid characters, see Microsoft article You cannot delete a file or a folder on an NTFS file system volume.
Incorrect NTFS Permissions
If your user account control lacks the permissions to modify a file or folder, you’ll see the “permission denied” dialog when attempting to delete it. All you need to do is take ownership of the file or folder, assign your account full control permissions before deleting the file.
You can take ownership of files/folders and assign permissions via Properties, Security tab. But some users prefer the command-line method using
Takeown.exe, even recursively across sub-folders). It also describes how to assign permissions using
icacls.exe. Alternately, you can launch Command Prompt under System or TrustedInstaller privileges to force delete an undeletable file or folder.
ICacls.exe operations in one go. No need to type those commands manually!
File system corruption
File system corruption causes errors such as “The File or Directory is Corrupted and Unreadable” when accessing or deleting a file or folder. Running disk Error Checking or
Chkdsk command ought to fix the problem.
Open This PC (my Computer), right-click on the drive which contains the stubborn file, and click Properties. Select the Tools menu, and click “Check”.
Clicking the Show Details link opens the relevant Event Viewer entry in the Application Log. It tells you what the problem is.
Then proceed to repair the drive now, or on the next restart as you so prefer.
Alternately, you can run
Chkdsk <driveletter:> /R from an elevated Command Prompt. It asks for your consent to dismount the drive and run a scan. If you choose “
N” (No), it’ll prompt for scheduling a scan at the next reboot. Click
Y to continue.
After fixing the file system errors using disk Error checking or Chkdsk, see if you can delete the stubborn file or folder.
If you know any other interesting methods to delete files that are otherwise “undeletable”, post them in the Comments section below.