Pregunta

Estoy intentando establecer un indicador que hace que aparezca la casilla de verificación Solo lectura cuando haga clic con el botón derecho en \ Propiedades en un archivo.

¡Gracias!

¿Fue útil?

Solución

Dos maneras:

System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
fileInfo.IsReadOnly = true/false;

o

// Careful! This will clear other file flags e.g. FileAttributes.Hidden
File.SetAttributes(filePath, FileAttributes.ReadOnly/FileAttributes.Normal);

La propiedad IsReadOnly en FileInfo básicamente realiza el cambio de bits que tendría que hacer manualmente en el segundo método.

Otros consejos

Para establecer el indicador de solo lectura, de hecho, el archivo no se puede escribir:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) | FileAttributes.ReadOnly);

Para eliminar el indicador de solo lectura, que hace que el archivo se pueda escribir:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);

Para alternar la bandera de solo lectura, haciendo que sea lo opuesto a lo que sea ahora:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) ^ FileAttributes.ReadOnly);

Esto es básicamente máscaras de bits en efecto. Establece un bit específico para establecer el indicador de solo lectura, lo borra para eliminar el indicador.

Tenga en cuenta que el código anterior no cambiará ninguna otra propiedad del archivo. En otras palabras, si el archivo estaba oculto antes de ejecutar el código anterior, también permanecerá oculto después. Si simplemente establece los atributos del archivo en .Normal o .ReadOnly , podría terminar perdiendo otras banderas en el proceso.

c #:

File.SetAttributes (filePath, FileAttributes.Normal);

File.SetAttributes (filePath, FileAttributes.ReadOnly);

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top