Prima di tutto, vorrei controllare manualmente le autorizzazioni e vedere che cosa ti blocca e cosa no. Sto usando qualcosa di simile per verificare i permessi (per il file copy):
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
}
Inoltre, ci sono alcuni casi strani in cui un certo diritto sulla cartella cambia il diritto per i file a prescindere dalle loro singole autorizzazioni (volontà vedi se riesco a trovare quello che è).
hai già un modo per controllare - GetFiles :) Cosa c'è che non va? –
È lento quando si rilevano le eccezioni. –