2008-10-10 8 views

Respuesta

13
foreach (string fileName in System.IO.Directory.GetFiles(path)) 
{ 
    System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileName); 

    fileInfo.Attributes |= System.IO.FileAttributes.ReadOnly; 
    // or 
    fileInfo.IsReadOnly = true; 
} 
9

Puede probar esto: iterar sobre cada archivo y subdirectorio:

public void Recurse(DirectoryInfo directory) 
{ 
    foreach (FileInfo fi in directory.GetFiles()) 
    { 
     fi.IsReadOnly = false; // or true 
    } 

    foreach (DirectoryInfo subdir in directory.GetDirectories()) 
    { 
     Recurse(subdir); 
    } 
} 
1

Si desea quitar el sólo lectura atributos usando la coincidencia de patrones (por ejemplo, todos los archivos en la carpeta con una extensión .txt) podría intentar algo como esto:

Directory.EnumerateFiles(path, "*.txt").ToList().ForEach(file => new FileInfo(file).Attributes = FileAttributes.Normal); 
Cuestiones relacionadas