Удаление атрибута только для чтения в каталоге с использованием 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 #?