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 回答