Exemple #1
0
        /// <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());
            }
        }