Devo scrivere il mio metodo per disinserirlo di sola lettura in una cartella e il suo contenuto in C #?
-
05-07-2019 - |
Domanda
Ho una cartella con alcune cartelle e alcuni file in quelle cartelle. Accade così che quei file possano essere di sola lettura, il che non è accettabile per me.
La domanda è: devo scrivere il codice per disinserirlo ricorsivamente in sola lettura su tutti i file? Non è difficile da scrivere ma esiste un modo .NET standard per farlo?
La mia soluzione attuale:
private static void SetReadOnly( string path, bool readOnly )
{
foreach ( string directory in Directory.GetDirectories( path ) )
{
DirectoryInfo di = new DirectoryInfo( directory );
if ( readOnly )
{
di.Attributes &= FileAttributes.ReadOnly;
}
else
{
di.Attributes ^= FileAttributes.ReadOnly;
}
SetReadOnly( directory, readOnly );
}
foreach ( string file in Directory.GetFiles( path ) )
{
FileInfo fi = new FileInfo( file );
if ( readOnly )
{
fi.Attributes &= FileAttributes.ReadOnly;
}
else
{
fi.Attributes ^= FileAttributes.ReadOnly;
}
}
}
Soluzione
No, non esiste un metodo integrato per questo. Devi scriverlo tu stesso e il tuo codice esistente sembra farebbe il lavoro.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow