Windows cannot delete file or folder


Reboot

Reboot, then delete.

DEL or RMDIR

Open a command line window (WindowsKey + R, enter: cmd). Move to the folder in question by means of CD commands like CD \ and CD foldername.
Delete the file or folder by using the DEL command to delete files or the RMDIR (remove directory) command to remove directories (folders).

Kill explorer.exe

If this, on its own, is still not enough, then leave the command line window on the desktop, open Task Manager (Ctrl + Shift + Esc), and kill all explorer.exe tasks. Your desktop will go blank, except for the windows already open.
Now try to delete the offending file by means of the DEL command, or folder by means of the RMDIR (remove directory) command, in the command line window, as described above.
After that, in the command line window enter:
explorer
to restart your desktop. If you closed the command line window, you can still restart explorer by opening the Task Manager by holding down the Ctrl and Shift keys and briefly pressing the Esc key. In Task Manager select Applications, New Task and enter: explorer

Log off

If the previous method fails, particularly with multimedia files, log off, then log on again, but do not select the file in Windows Explorer. The safest way is not to open Windows Explorer in the first place.
Then try the previous method again.

Reboot again

An even stronger measure would be to reboot, then try the previous methods again. This would work, for example, if a service has the file open.

Delete containing folder

[Thanks to John Barrington:] If you can't delete a problem file, try deleting the folder that contains the problem file. If this doesn't work, try this next item.
If the problem file and its folder, we'll call (A), is within another folder, we'll call (B), try to delete the folder (B) along with any troublesome contents.
Of course, you want to make sure, if you have any other important files or folders within either folder, that they are saved in another location first.

Use RMDIR on containing folder

Begin like the previous method, but try also
rmdir /s foldername
(replace foldernamewith the name of the folder to be deleted). This command should delete a folder with all its subfolders.
If the folder name contains one or more spaces, enclose it in quotes. Example:
rmdir /s "folder name"
Note that the abbreviated command rd can be used in place of rmdir.

Use short name

If the folder name contains strange characters, use a command line window again, but use the DIR /X command to find the short name (for example: PROGRA~1) and use the short name instead. The short name is DOS compatible and has no more than 8 characters for the main name, a period, then no more than 3 characters for the extension.
Retry the previous methods that use a command line window, but use the short name now.
Note: Sometimes an illegal file name can cause Windows Explorer to use nearly 100% of the CPU time.
[Thanks to astk1:] Sometimes the abbreviated name can have a number other than one and can have an extension. If the above does not work, proceed as follows.
  1. Open a command line window (Start, Run, type: cmd, press the return/enter key).
  2. Navigate to the folder using "cd .." and "cd pathname", where pathname is the name of the next subfolder you want to go into.
  3. Type dir /x to see the actual real short name of the subdirectory. Critically: This may include an extension, e.g. "ABDCEF~1.XYZ".
  4. Type "rmdir /s abcdef~1.xyz", replacing the example name abcdef~1.xyz with your actual folder name.

Safe mode

Boot into safe mode and try to delete the file or folder there.

Stop program

If you're trying to delete a program file, like one with the extension .exe, the cause could be that the program is currently running. Stop it, then delete the file.
If the program starts automatically, check the article Autorun causes on how to remove the start command. Do it, reboot, then delete the file.

Rename or move during next boot

If this also doesn't work, there is a way to rename or move a file or folder during the boot process. For this you need to use the registry editor REGEDIT.EXE. See the Registry warning for a general warning.
Create a multi-text value in
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\
named PendingFileRenameOperations of type REG_MULTI_SZ. In pre-XP Windows versions you have to use REGEDT32.EXE to create this value type.
The first line of each pair is the current file or folder path and name with \??\ in front of it.
The second line of each pair is the new file or folder path and name with !\??\ in front of it.
Example for one pair which moves the file mfc42.dll from the temp folder to the system32 folder and overwrites any existing file at the destination:
\??\C:\TEMP\mfc42.dll
!\??\C:\WINDOWS\system32\mfc42.dll
You can add as many pairs as you like. The move operation is performed directly after the next reboot. You can also give folder paths, so the folder will be renamed. But both paths have to be local.
There is a Windows API call for this, named MoveFileEx, and somebody in Germany has even written a utility named MoveEx for it. You can download it from http://wwwthep.physik.uni-mainz.de/~frink/nt.html. Use it if you need this function often. A Posix utility from a Windows Resource Kit named mv.exe also does it, just in case you still have the resource kit around.

Use another operating system

Boot into another operating system to delete the file from there. The other operating system can be, for example, another installation of Windows, BartPE, Knoppix, Ubuntu, or any operating system that can read the file system used (NTFS or FAT32).

Connect hard disk to other computer

Remove the hard disk from the computer and connect it to another computer. Delete the files or folders there.

Use unlock utility

If you cannot delete a file or folder because it is in use, you can use one of the mostly free utilities, such as Unlocker.
Internet Explorer 8 issues a warning when you open that page, but as far as I can tell (I checked the code of the page at least superficially in March 2010) that is a false alarm.

Shorten names

If the cause is that the path and file name is too long, first try to rename folders in the path with shorter names.
If that doesn't work, you can use the following method, reported 2007-05-17 by Mark Briody:
Open a command line window and use the subst command to create a virtual drive to the folder containing the long file name, e.g. (all in one line):
subst x: "C:\Documents and Settings\briodym\Favorites\Mark\Gadgets and Hardware\Hardware\Stores\eBuyer"
Then change to the virtual drive x:, and you should be able to delete, rename, and move files and folders.
Finally, to clean up, remove the subst again with:
subst x: /d

Deal with hidden or system files

[Thanks to warpcoil, who first described this method in a comment below]
This method deals with files that carry the hidden or system attribute. You can delete such files in Windows Explorer, if you set the folder options such that these files are shown in the first place, but the following method can delete them from a command line window.
Open a command line window and navigate to the offending folder by means of the cd command.
Show all files, using the attrib command. Note the attributes displayed as single letters on the left side of the listing:
Letter Attribute
RRead-only
HHidden
SSystem
Delete the offending files with the commands:
del /f /a:s
del /f /a:h
Replace with the name of the offending file or files. You can use wildcard characters. For example, the following command:
del abc*.* /f /a:h
would delete all files whose names begin with abc and which carry the hidden attribute, regardless of the system or read-only attributes.
When it works you get no response, but typing attrib again will show that the file has gone.

Access rights

aguggis wrote an excellent comment, outlining the following procedure for the common case that you do not have sufficient access rights to delete a folder or file. Thanks!
I was unable to access or delete a folder created by rsync on Windows XP, and none of the solutions proposed here worked. The simple but effective solution [meanwhile slightly enhanced] was the following:
  1. Right click on the problem folder --> Properties.
  2. Select the Security Tab. (See below for Windows XP Home.)
  3. If necessary, click on Advanced, Owner, and take ownership.
  4. Mark your username and authorize full control.
  5. Apply and OK.
  6. Now you can delete the folder without problems.
This procedure can be used to delete the System Volume Information folders that Windows creates automatically.
In Windows XP Home Edition there is no "Security" tab, but if you boot your computer into safe mode and log on as Administrator, you will get the "Security" tab. For some more details, please have a look at:

留言

這個網誌中的熱門文章

Disable ionic's sidemenu content drag to toggle menu

Multiple writable mappings exist for the field. Only one may be defined as writable, all others must be specified read-only.

java.lang.NoClassDefFoundError: org/apache/xerces/jaxp/datatype/XMLGregorianCalendarImpl$Parser