¿Cómo puedo eliminar programáticamente el atributo readonly de un directorio en C#?Eliminar el atributo readonly del directorio
Respuesta
var di = new DirectoryInfo("SomeFolder");
di.Attributes &= ~FileAttributes.ReadOnly;
hey darin, ¿qué significa esta sintaxis? "& = ~" ¡Salud! – andy
& = -> Agregar no toque todos los demás atributos y ~ -> complemento, haga lo contrario de readonly – MarkKGreenway
Aquí es un buen enlace a ejemplos de archivo de modificación de atributos utilizando C#
http://www.csharp-examples.net/file-attributes/
basado en su ejemplo, se puede quitar el atributo de sólo lectura como esto (no he probado esto):
File.SetAttributes(filePath, File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);
vamos en esto todo sobre Archivo. wana abt Directorio ... por favor. –
@Red Swan: Acabo de probar esto para agregar atributos ocultos, y también funciona bien con los directorios. – Petrucio
Esto funciona para archivos y directorios porque un directorio es como un archivo especial con el conjunto de atributos de directorio (FileAttributes.Directory). – seveves
Si está intentando eliminar el atributo de un archivo en el sistema de archivos, cree una instancia de la clase System.IO.FileInfo y establezca la propiedad IsReadOnly en false.
FileInfo file = new FileInfo("c:\\microsoft.text");
file.IsReadOnly = false;
no no sobre el archivo. Quiero de Directorio/Carpeta –
Conseguí finalmente. ;)
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo("c:\\test");
FileAttributes f = di.Attributes;
Console.WriteLine("Directory c:\\test has attributes:");
DecipherAttributes(f);
}
public static void DecipherAttributes(FileAttributes f)
{
// To set use File.SetAttributes
File.SetAttributes(@"C:\test", FileAttributes.ReadOnly);
if ((f & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
Console.WriteLine("ReadOnly");
// To remove readonly use "-="
f -= FileAttributes.ReadOnly;
if ((f & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
Console.WriteLine("ReadOnly");
else
Console.WriteLine("Not ReadOnly");
}
}
Usando el operador - = asignación es peligrosa por dos razones: 1) sólo funciona si se establece el atributo de sólo lectura, por lo tanto se requiere una prueba de antemano. 2) Está realizando una operación de resta, que no es la mejor opción cuando se trabaja con indicadores binarios. La operación de resta funciona si la condición 1 (arriba) es verdadera, ¡pero operaciones de resta adicionales ALTERARÁN OTROS BITS en el campo FileAttributes!
Use "& = ~ FileAttributes.ReadOnly;" para restablecer el indicador ReadOnly.
Use "| = FileAttributes.ReadOnly;" para establecer el indicador ReadOnly.
el establecimiento de atributos a FileAttributes.Normal
trabajaron para mí en ambos carpetas y archivos.
La única preocupación que tengo con este enfoque es ¿qué pasa si la carpeta (o archivo) tiene otro atributo? Si una carpeta está oculta y es de solo lectura, y solo desea que ya no sea solo de lectura, su método ya no la ocultará. Eso podría tener consecuencias no deseadas. –
public static void DeleteDirectory(string path)
{
var directory = new DirectoryInfo(path)
{ Attributes =FileAttributes.Normal };
foreach (var info in directory.GetFileSystemInfos("*", SearchOption.AllDirectories))
{
info.Attributes = FileAttributes.Normal;
}
directory.Delete(true);
}
- 1. hg ¿eliminar el directorio del repositorio?
- 2. NSFileManager eliminar contenido del directorio
- 3. jQuery eliminar el atributo
- 4. XPATH eliminar el atributo
- 5. ¿Cómo puedo agregar y quitar el atributo "readonly"?
- 6. ¿Compatible con WTForms para el atributo readonly de entrada?
- 7. Git eliminar el directorio
- 8. Eliminar el directorio VSMacros80
- 9. Eliminar el atributo C# de una propiedad dinámicamente
- 10. Eliminar un directorio de la ruta completa del directorio
- 11. Magento: eliminar mediante programación el atributo del conjunto de atributos
- 12. LINQ: ¿Eliminar elemento de XML según el valor del atributo?
- 13. ¿Cómo eliminar el directorio recursivamente?
- 14. Eliminar el atributo CSS utilizando Jquery
- 15. Cómo eliminar el atributo xmlns de XDocument?
- 16. Cómo eliminar el enlace 'Directorio principal' de la carpeta raíz en la lista del directorio Apache
- 17. Eliminar el atributo de la etiqueta HTML
- 18. ¿Cómo eliminar los contenidos del directorio de Documentos (y no del directorio de Documentos en sí)?
- 19. FTP Eliminar el directorio no vacío
- 20. python: eliminar el directorio no vacío
- 21. readonly con jquery
- 22. Cómo quitar el atributo del objeto MongoDb?
- 23. Eliminar un atributo de XmlNode
- 24. Eliminar imagen del directorio de aplicaciones en iPhone
- 25. eliminar un atributo de JSON
- 26. Android Eclipse DDMS - ¿Cómo eliminar el directorio en el dispositivo?
- 27. eliminar la estructura del directorio al comprimir archivos en PHP
- 28. Eliminar archivos del directorio si el nombre del archivo contiene una determinada palabra
- 29. Readonly ComboBox en WinForms
- 30. Extracción atributo de sólo lectura en un directorio usando C#
@Lalit ¿Qué estás tratando de lograr? –
ver He leído solo la carpeta en mi camino. Quiero copiar algunos archivos en esa carpeta. de modo que desea convertirlo temporalmente en escritura, elimine solo de forma legible, luego copie los archivos y, a continuación, cree que ese archivo sea de solo lectura. ¿Puedes ayudarme a plaese? Este es un requisito –
En Windows, tener el atributo readonly establecido en un directorio no tiene sentido. Aún puede eliminar, cambiar el nombre, etc. ese directorio. Consulte https://support.microsoft.com/en-us/help/326549/you-cannot-view-or-change-the-read-only-or-the-system-attributes-of-folders-in-windows -server-2003, -in-windows-xp, -in-windows-vista-or-in-windows-7 para más información. –