Quiero comprimir una carpeta usando la compresión NTFS en .NET. Encontré this post, pero no funciona. Lanza una excepción ("Parámetro no válido").Comprima una carpeta usando compresión NTFS en .NET
DirectoryInfo directoryInfo = new DirectoryInfo(destinationDir);
if((directoryInfo.Attributes & FileAttributes.Compressed) != FileAttributes.Compressed)
{
string objPath = "Win32_Directory.Name=" + "\"" + destinationDir + "\"";
using(ManagementObject dir = new ManagementObject(objPath))
{
ManagementBaseObject outParams = dir.InvokeMethod("Compress", null, null);
uint ret = (uint)(outParams.Properties["ReturnValue"].Value);
}
}
¿Alguien sabe cómo habilitar la compresión NTFS en una carpeta?
las nuevas barras hicieron el truco, gracias !! – decasteljau
Este es un enfoque mucho más limpio que resolver P/Invocar, más importante aún, en realidad no funcionó a pesar de devolver un código de estado de éxito. Aunque el '. ManagementObject' .ctor es quisquilloso, utilicé este' string objPath = "Win32_Directory.Name =" + "'" + dir.FullName.Replace ("\\", @ "\\"). TrimEnd (' \ \ ') + "'"; 'para garantizar que el' ManagementObject' no arroje un parámetro inválido. –
¿cómo se descomprime el directorio por cierto? –