1

I seem to have managed to get an Application Data folder recurse into itself somehow, doesn't look recursive but somehow still is and now I find myself unable to remove that folder. The folder itself is merely a subfolder in a backup folder from an old pc. It isn't used anymore in any way.

Current folder name is

C:\DWI00672\toremove\brhi\AppData\local

(I renamed Documents and Settings to toremove)

Following I have tried

  • Delete in explorer.

    enter image description here

  • rmdir /s /q .
  • chkdsk. This reports a Windows may not detect all cycles on your volume because the directory structure is too deep.
  • robocopy to mirror an empty folder into the recursive one. This crashed robocopy with a stack overflow: STACK_OVERFLOW_c00000fd_Robocopy.exe!RoboPrune
  • Rename Application Data recursively to t to shorten the path length. This stops with the message that the fully qualified name must be less than 260 characters

    $current = gci "C:\DWI00672\toremove\brhi\AppData\local" -Force 
    while ($true) {
      $current.FullName
      if ($current.BaseName -ne "t") {Rename-Item -Path $current.FullName t -ErrorAction Inquire -Force }
      $current = gci "$($current.Parent.FullName)\t" -Force -ErrorAction Inquire 
    }
    
  • Download TeraCopy and try it having remove the folder.

  • subst into the folder structure to furter shorten the path using the Powershell script. After drive K:, I gave up.enter image description here
  • junction -s from sysinterals but this finds no reparse points. enter image description here
  • dir /s c:\DWI00672\toremove\brhi\AppData\Local is currently listing 330 Dir(s)
  • dir /al /s c:\DWI00672\toremove\brhi\AppData\Local to list the Reparse Points is returning File Not Found
  • rm -f -d c:\DWI00672\toremove\brhi\AppData\Local from Cygwin executed as current user, administrator and as system (psexec -s -i cmd). The all return rm: cannot unlink 'local': Not owner. The owner of the Local folder is my current user.
  • It's possible that somewhere under the Local folder (in one of it's many sub folders, or sub sub etc) there is a SymLink called Local to the real Local folder. This would certainly create a cycle. (See the clue in the message "cannot unlink 'local'" - may not be correct but it is suggestive.) – simon at rcl Jan 25 '17 at 15:04
  • Possible but `dir /al /s` and/or `junction -s` should have found those. Let's assume that's right, any idea how to remove the folder structure? – Lieven Keersmaekers Jan 25 '17 at 16:24
  • 1
    This question's subject matter attracts a number of very persistent spammers. Protecting the question prevents them from posting. – Michael Hampton Jan 26 '17 at 06:21

1 Answers1

2

Unfortunately, I can't comment.

But, you could try to use robocopy to mirror an empty directory to C:\DWI00672, then remove the directory.

So:

  1. mkdir C:\empty
  2. robocopy C:\empty C:\DWI00672 /PURGE
  3. rmdir C:\empty
  4. rmdir C:\DWI00672

Robocopy doesn't use the same system calls that have the 248 character limit. But it might have an upper character limit I'm not aware of.

I just tried it on my system, it worked just fine (this had a folder structure of around 400 characters).

Ed D'Azzo
  • 356
  • 2
  • 2
  • I tried and listed that, it didn't work: *robocopy to mirror an empty folder into the recursive one*. I just tried it again with the /PURGE parameter but it crashes with a stack overflow.Following is the failure bucket id: `STACK_OVERFLOW_c00000fd_Robocopy.exe!RoboPrune`` – Lieven Keersmaekers Jan 26 '17 at 06:14