1

その中にいくつかのフォルダーがあり、それらのフォルダーにいくつかのファイルがあるフォルダーがあります。たまたま、それらのファイルが読み取り専用である可能性があり、これは私には受け入れられません。

問題は、すべてのファイルで読み取り専用の設定を再帰的に解除するコードを作成する必要があるかどうかです。書くのは難しくありませんが、それを行う標準的な .NET の方法はありますか?

私の現在の解決策:

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;
        }
    }
}
4

1 に答える 1

0

いいえ、そのための組み込みメソッドはありません。自分で作成する必要があり、既存のコードで機能するように見えます。

于 2009-09-11T12:43:13.537 に答える