Why can’t I delete this file?
It’s a fact that you can create files in Windows that
are almost impossible to delete using normal methods. Typically it’s the result of a hidden character in the filename – a
character that for various reasons can’t be seen and is difficult if
not impossible to type. And yet if you don’t specify the correct
filename including that odd character you can’t delete the file.
I can hear you asking “great, how did that character get there and
more importantly how can I delete the file?”
The answer to the first part is speculation but I was recently pointed
at a tool that will help with the second.
Become a Patron of Ask Leo! and go ad-free!
The biggest issue with invalid names is that not all programs filter out
invalid characters from filenames before they pass them on to the system.
For example, let’s say you happened to accidentally hit the spacebar
after the filename when you went to save a file. If the
application you’re using is not smart enough to strip trailing spaces
then it may well create the file with a trailing space. You may think and
see “FOO.DOC”, but Windows sees “FOO.DOC “. A subtle,
but important difference.
What’s worse is when you attempt to rename the file or delete the
file using a utility that then “does the right thing”, it
strips trailing spaces before it attempts to operate on the file. You type
in or select “FOO.DOC ” with a space and the utility takes it as
“FOO.DOC” without a space, tries to delete it, and fails because
that’s not the name of the file!
There are actually several scenarios that can result in files that seem
almost impossible to delete. Fortunately they are rare but they do
What to do?
If your file system is FAT or FAT32 or most instances of NTFS
you can use the old DOS “shortname”. In the days before Windows
filenames under MS-DOS could only be 11 characters long. For compatibility with old programs that relied on the 11 character limitation Windows creates a unique “shortname” for every long file name. For example, if
your file is named “thisisalongfilename.isntit” a DIR
/X in a command shell may show the shortname as
“THISIS~1.ISN”. It refers to the same file so you can delete
using the shortname.
In some cases using the command shell or using shortnames isn’t an
option. That’s a situation I found myself in some time ago. My disks
are formatted with NTFS, and I’ve explicitly turned off
“shortnames” for a little bit more speed. I had no way to delete
the file I’d somehow created.
I was recently pointed at delinvfile, short
for Delete Invalid File,
from Assistance & Resources for Computing, Inc. It’s a free Windows
program that uses standard controls for drives, folders, and files to
navigate to the folder and to select the file to be deleted. Push a button
and it’s gone.
It just got added to my little arsenal of handy tools I carry with me
wherever I go.