Я работаю над небольшой системой развертывания для нашего собственного программного обеспечения, которое управляет резервным копированием нескольких видов данных.Частью задачи является резервное копирование определенных папок, и я хотел бы сделать резервную копию списков ACL, примененных к этим папкам, чтобы при восстановлении файлы все еще работали, как и ожидалось.
Создание прототипа некоторого кода, я пытался использовать встроенный .NET-in XmlSerializer, но безрезультатно.
Вот пример кода:
public static byte[] SerializeFileACL(string path)
{
var acl = File.GetAccessControl(path, AccessControlSections.All);
using (var ms = new MemoryStream())
{
_fileSerializer.Serialize(ms, acl);
return ms.ToArray();
}
}
Однако это возвращает те же 143 байта независимо от того, в каком файле я их пробую.Есть ли хороший способ сериализации списков ACL с использованием средств .NET?Что я делаю не так?
PS: Да, я знаю, что списки ACL могут быть неприменимы к другим компьютерам.Это не проблема для этого проекта.