yo era capaz de eliminar con éxito atributo de sólo lectura en un archivo con el siguiente fragmento de código:Extracción atributo de sólo lectura en un directorio usando C#
En 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);
}
}
Por desgracia, este doesn' t trabajo en las carpetas. Después de ejecutar el código, cuando voy a la carpeta, haga clic y hacer propiedades bien, esto es lo que veo:
La única bandera leer todavía está marcada a pesar de que lo sacó de los archivos por debajo de ella. Esto hace que un proceso falle al eliminar esta carpeta. Cuando elimino manualmente el indicador y vuelvo a ejecutar el proceso (un archivo bat), puedo eliminar el archivo (así sé que esto no es un problema con el archivo bat)
¿Cómo elimino este marcador en C#?
Esto no parece estar funcionando en el directorio. Aún veo los atributos con solo set de lectura. – DotnetDude