Tôi muốn nén một thư mục bằng cách sử dụng nén NTFS trong .NET. Tôi tìm thấy this post, nhưng nó không hoạt động. Nó ném một ngoại lệ ("Tham số không hợp lệ").Nén một thư mục bằng cách sử dụng nén NTFS trong .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);
}
}
Bất kỳ ai biết cách bật tính năng nén NTFS trên một thư mục?
các dấu gạch chéo của foward đã thực hiện thủ thuật, cảm ơn !! – decasteljau
Đây là một cách tiếp cận sạch hơn nhiều so với việc giải quyết P/Invoke, quan trọng hơn, nó không thực sự hoạt động mặc dù trả lại mã trạng thái thành công. Mặc dù 'ManagementObject' .ctor là cầu kỳ, tôi đã sử dụng' string objPath = "Win32_Directory.Name =" + "'" + dir.FullName.Replace ("\\", @ "\\"). TrimEnd (' \ \ ') + "'"; 'để đảm bảo rằng' ManagementObject' không ném tham số không hợp lệ. –
làm thế nào để bạn giải nén thư mục btw? –