/// <summary> /// Set the file tags. /// </summary> /// <param name="filename">Filename to set tags to</param> /// <param name="tags">File tags</param> static void SetFileTags(string filename, HashSet <string> tags) { var rootNode = new ArrayNode(); var i = 0; foreach (string tag in tags) { var node = new StringNode { Value = tag }; rootNode.Insert(i++, node); } using (var stream = new MemoryStream()) { PList.Save(rootNode, stream, PListFormat.Binary); Syscall.setxattr(filename, TagName, stream.ToArray()); } }