FileSecurity fsec =File.GetAccessControl(path); bool deleting = false; foreach (FileSystemAccessRule rule in fsec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount))) { if ((rule.FileSystemRights & FileSystemRights.Delete) != 0) { deleting = true; break; } } bool listing = false; DirectorySecurity sec = Directory.GetAccessControl(path); foreach (FileSystemAccessRule rule in sec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount))) { if ((rule.FileSystemRights & FileSystemRights.ListDirectory) != 0) { listing = true; break; } } if (!listing) return;