According to MSDN, Directory.Exists should return false if a directory is not accessible. I have a path for which Directory.Exists returns true yet Directory.GetFiles throws a System.UnauthorizedAccessException. I have also tried the CanRead function here, but this too returns true for the path.
The path is "C:\Users\{username}\AppData\Local\Microsoft\Windows\INetCache\Content.IE5" if knowing that helps.
You don't have access to content of this folder, because first - it's actually not a folder, but a reparse point which targets another folder and second - it have quite restrictive access rights.
In your particular case this reparse point targets "C:\Users\{username}\AppData\Local\Microsoft\Windows\INetCache\IE" folder which is freely accessible.
There are several such shortcuts exists inside user folder for compatibility with legacy software. And while you cannot list content of these reparse points, you can access files and folders inside when you know the name.
And last note, you never need to check specific folder rights before access, instead you should catch UnauthorizedAccessExpception
and act accordingly. You don't even need to check folder existence before access, because it can be deleted after check (not this particular folder, but in general), you simply should catch DirectoryNotFoundException
.