Devo scrivere il mio metodo per disinserirlo di sola lettura in una cartella e il suo contenuto in C #?

StackOverflow https://stackoverflow.com/questions/1410610

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;
        }
    }
}
È stato utile?

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
scroll top