There are a number of possibilities as to why folders cannot be deleted but this one I came across recently got my attention. While decompressing a zip file it created its extracted folder but when I came to remove the folder it came up with the error “Cannot delete file: Cannot read from the source file or disk”. After investigating I realised that it had a trailing space at the end of the folder. Now I knew what was causing the removal to fail but how to get rid of it?
Well there are a few ways on how to remove folders with trailing spaces:
1. Using the “\\?\” syntax
2. Using 8.3 short filename format (if folder is more than 8 characters)
Below is an example code which creates a folder called “testfolder” in C:\TEMP with a trailing space. Note that after the space \\ is required for it to create the space after the folder. Once compiled and run it will create the testfolder, pause for 5 seconds and then remove it. The trailing space can be more than just one space character.
CreateDirectory(“C:\\TEMP\\testfolder \\”, NULL);
Examples on how to delete trailing space folders from the console.
C:\>rd “\\?\c:\temp\testfolder ”