ero con successo in grado di rimuovere attributo di sola lettura su un file utilizzando il seguente frammento di codice:Rimozione sola lettura attributo su una directory utilizzando C#
In 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);
}
}
Purtroppo, questo doesn' t lavorare sulle cartelle. Dopo aver eseguito il codice, quando vado nella cartella, fare clic destro e fare proprietà, ecco cosa vedo:
Il flag di sola lettura è ancora verificata, anche se rimosso dai file sotto di esso. Ciò causa il fallimento di un processo durante l'eliminazione di questa cartella. Quando rimuovo manualmente il flag e rieseguo il processo (un file bat), è in grado di eliminare il file (quindi so che questo non è un problema con il file bat)
Come rimuovo questo flag in C#?
Questo non sembra funzionare nella directory. Vedo ancora gli attributi con set di sola lettura. – DotnetDude