Removendo o atributo somente leitura em um diretório usando C #

Consegui remover com êxito o atributo somente leitura em um arquivo usando o seguinte snippet de código:

Em main.cs

FileSystemInfo[] sqlParentFileSystemInfo = dirInfo.GetFileSystemInfos();

foreach (var childFolderOrFile in sqlParentFileSystemInfo)
{
    RemoveReadOnlyFlag(childFolderOrFile);
}

private static void RemoveReadOnlyFlag(FileSystemInfo fileSystemInfo)
{
    fileSystemInfo.Attributes = FileAttributes.Normal;
    var di = fileSystemInfo as DirectoryInfo;

    if (di != null)
    {
        foreach (var dirInfo in di.GetFileSystemInfos())
            RemoveReadOnlyFlag(dirInfo);
    }
}

Infelizmente, isso não funciona nas pastas. Depois de executar o código, quando vou para a pasta, clique com o botão direito do mouse e faça propriedades, eis o que vejo:

O sinalizador somente leitura ainda está marcado, embora o tenha removido dos arquivos abaixo dele. Isso faz com que um processo falhe ao excluir esta pasta. Quando eu removo manualmente o sinalizador e executo o processo (um arquivo bat), ele pode excluir o arquivo (para que eu saiba que isso não é um problema com o arquivo bat)

Como faço para remover esse sinalizador em c #?

questionAnswers(10)

yourAnswerToTheQuestion