c# file-attributes

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.