Microsoft.Azure.Commands.DataFactories.SaveAzureDataFactoryLog.HaveWriteAccess C# (CSharp) Method

HaveWriteAccess() private method

private HaveWriteAccess ( string directory ) : bool
directory string
return bool
        private bool HaveWriteAccess(string directory)
        {
            bool writeAllow = false;
            bool writeDeny = false;
            try
            {
                DirectorySecurity accessControlList = Directory.GetAccessControl(directory);
                if (accessControlList == null)
                {
                    return false;
                }

                var rules = accessControlList.GetAccessRules(true, true, typeof(System.Security.Principal.SecurityIdentifier));

                if (rules == null)
                {
                    return false;
                }

                foreach (FileSystemAccessRule rule in rules)
                {
                    if ((FileSystemRights.Write & rule.FileSystemRights) != FileSystemRights.Write)
                    {
                        continue;
                    }

                    if (rule.AccessControlType == AccessControlType.Allow)
                    {
                        writeAllow = true;
                    }

                    else if (rule.AccessControlType == AccessControlType.Deny)
                    {
                        writeDeny = true;
                    }
                }

                return writeAllow && !writeDeny;
            }
            catch
            {
                return false;
            }
        }
    }
SaveAzureDataFactoryLog