En primer lugar, me gustaría comprobar manualmente los permisos y ver lo que te bloquea y lo que no. Estoy usando algo como esto para comprobar si hay permisos (para el archivo de copia):
AuthorizationRuleCollection acl = fileSecurity.GetAccessRules(true, true,typeof(System.Security.Principal.SecurityIdentifier));
bool denyEdit = false;
for (int x = 0; x < acl.Count; x++)
{
FileSystemAccessRule currentRule = (FileSystemAccessRule)acl[x];
AccessControlType accessType = currentRule.AccessControlType;
//Copy file cannot be executed for "List Folder/Read Data" and "Read extended attributes" denied permission
if (accessType == AccessControlType.Deny && (currentRule.FileSystemRights & FileSystemRights.ListDirectory) == FileSystemRights.ListDirectory)
{
//we have deny copy - we can't copy the file
denyEdit = true;
break;
}
... more checks
}
También, hay algunos casos raros donde un cierto derecho sobre la carpeta cambia el adecuado para los archivos independientemente de sus permisos individuales (voluntad ver si puedo encontrar lo que es).
ya tiene una forma de comprobar - GetFiles :) ¿Qué pasa con la captura? –
Es lento cuando detecta excepciones. –