C#hace que el archivo lea/escriba desde solo lectura
file-attributes (3)
Entiendo que esto es muy tarde, pero quería compartir mi solución con la esperanza de que ayude a otros. Necesitaba algo similar y la forma en que lo logré fue estableciendo la propiedad IsReadOnly
en FileInfo
.
private void UnsetReadOnlyAttribute(string filePathWithName)
{
FileInfo fileInfo = new FileInfo(filePathWithName);
if (fileInfo.IsReadOnly)
{
fileInfo.IsReadOnly = false;
}
}
Si File.SetAttributes("C://myFile.txt", FileAttributes.ReadOnly);
configura un archivo como solo lectura, ¿cómo lo configuro para que vuelva a leer / escribir si lo necesito?
Sospecho que sería FileAttributes.Normal
sin embargo, ¿esto cambiará alguna otra propiedad del archivo? No hay una nota muy descriptiva en el sitio de MSDN ...
El archivo es normal y no tiene otros atributos establecidos. Este atributo es válido solo si se usa solo.
Gracias
File.SetAttributes reemplaza TODOS los atributos en el archivo.
La forma correcta de establecer y eliminar atributos es obtener primero los atributos, aplicar cambios y establecerlos.
p.ej
var attr = File.GetAttributes(path);
// set read-only
attr = attr | FileAttributes.ReadOnly;
File.SetAttributes(path, attr);
// unset read-only
attr = attr & ~FileAttributes.ReadOnly;
File.SetAttributes(path, attr);
Para eliminar solo el atributo ReadOnly
, harías algo como esto:
File.SetAttributes("C://myfile.txt", File.GetAttributes("C://myfile.txt") & ~FileAttributes.ReadOnly);
Esto eliminará el atributo ReadOnly
, pero conservará cualquier otro atributo que ya exista en el archivo.