Удаление атрибута только для чтения в каталоге с использованием C #

Мне удалось удалить атрибут «Только чтение» в файле, используя следующий фрагмент кода:

В 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);
    }
}

К сожалению, это не работает на папках. После запуска кода, когда я иду в папку, щелкаю правой кнопкой мыши и выполняю свойства, вот что я вижу:

Флаг только для чтения все еще проверен, хотя он удалил его из файлов под ним. Это приводит к сбою процесса удаления этой папки. Когда я вручную удаляю флаг и повторно запускаю процесс (файл bat), он может удалить файл (поэтому я знаю, что это не проблема с файлом bat)

Как мне убрать этот флаг в C #?

Ответы на вопрос(10)

Ваш ответ на вопрос